HTTP协议
在学习web通信机制前首先得学习一下http协议,所以有了这篇博客。
1、 协议的概念:
规定被约束的对象需要遵守的规则!
2、HTTP协议
HTTP协议:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
HTTP协议规定: 浏览器(客户端)向服务器发送何种格式的数据,服务器 会处理数据,向浏览器(客户端)作出响应。(向客户端发送何种格式的数据)
HTTP协议的特点:
1. HTTP协议遵守一个请求响应模型.
2. 请求和响应必须成对出现.
3. 必须先有请求后有响应.
4. HTTP协议默认的端口:80
3、 HTTP协议的请求部分
3.1 客户端向服务器发送的数据的格式:
GET请求方式的抓包:
GET /WEB09/demo1/subSucc.html?username=aaa&password=123 HTTP/1.1
Accept: text/html, application/xhtml+xml, */* ——支持数据类型
X-HttpWatch-RID: 63397-10023
Referer: http://localhost:8080/WEB09/demo1/demo1.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5 ——语言环境
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate ——支持压缩
Host: localhost:8080 ——访问主机
Connection: Keep-Alive ——链接状态
POST方式的抓包:
POST /WEB09/demo1/subSucc.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 63397-10049
Referer: http://localhost:8080/WEB09/demo1/demo1.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 25
Connection: Keep-Alive
Cache-Control: no-cache
username=aaa&password=123
3.2 【请求行】
请求方式 请求路径 协议版本
- 请求方式:请求方式有很多种 常用的是GET和POST.
- GET和POST区别?
- GET:请求参数会显示到地址栏.GET方式有大小的限制.GET方式没有请求体
- POST:请求参数不会显示到地址栏.在请求体中.POST没有大小限制.POST方式有请求体.
- 只有表单设置为method=”post”才是post请求.其他的都是get请求
3.3 【请求头】 - 请求头通常都是key:value的键值对的形式.一般情况下一个key对应一个value但也有一个key对应多个value的情况.
- Referer :网站的来源.防盗链.
- User-Agent :获得客户端浏览器的信息.(文件下载:IE:URL编码 火狐Base64)
- If-Modified-Since :和响应中一个头一起使用 完成本地缓存的查找.
3.4 【请求体】
POST方式 提交的请求参数
4、HTTP协议的响应部分
4.1 服务器向客户端发送的数据的格式:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"147-1455670867735"
Last-Modified: Wed, 17 Feb 2016 01:01:07 GMT
Content-Type: text/html
Content-Length: 147
Date: Wed, 17 Feb 2016 01:17:06 GMT
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>鎻愪氦鎴愬姛</h1>
</body>
</html>
4.2 【响应行】
协议版本 状态码 状态码描述
200:响应成功
302:重定向
304:查找本地缓存
404:浏览资源不存在.
500:服务器内部错误.
4.3 【响应头】
一个key对应一个value,也有一个key对应多个value的头.
Last-Modified :最后的修改文件的事件.与If-Modified-Since一起使用.
Refresh :定时刷新.
Location :重定向的路径.
Content-Disposition:文件下载的时候使用的头信息.
禁用浏览器缓存:
Pragma
Expires
Cache-Control
4.4 【响应体】
页面要显示的内容.