1. HTTP协议
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。
1.1 HTTP协议的特点:
- http协议遵守一个请求响应模型
- 请求和响应必须成对出现
- 必须先有请求后又响应
- http协议默认的端口:80
1.2 HTTP协议的请求部分
客户端向服务器发送的数据的格式分为GET和POST两种方式
GET和POST请求方式的抓包:
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 /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
组成部分:请求行 请求头 请求体
请求行:
格式:请求方式 访问的资源 协议/版本 例如:GET /WEB09/demo1/subSucc.html?username=aaa&password=123 HTTP/1.1
请求方式:get和post
- GET:请求参数会显示到地址栏,GET方式有大小的限制,GET方式没有请求体
- POST:请求参数不会显示到地址栏,POST有请求体,在请求体中,POST没有大小限制
请求头:请求信息的第二行到空行结束
请求头通常是key:value的键值对的形式。常见的请求头:
- Accept:text/html,image/bmp 支持数据类型 text/html text/css text/javascript 大类型/小类型 mime类型
- Accept-Charset:ISO-8859-1 字符集
- Accept-Encoding:gzip 支持压缩
- Accept:Language:zh-cn 语言环境
- Host:www.itcast.cn:80 访问主机
- If-Modified-Since:Tue, 11 Jul 2000 18:23:51 GMT --缓存文件的最后修改时间
- Referer:http://www.itcast.com/index.jsp --来自哪个页面、防盗链
- Connection:Keep-Alive --链接状态
请求体:空行一下的内容
只有post才有请求体 格式:username=tom&password=123
1.3 HTTP协议的响应部分
组成部分:响应行 响应头 响应体
响应行:相应信息的第一行
格式:协议/版本 状态码 状态码说明 例如:HTTP/1.1 200 OK
状态码:
- 200 正常响应成功
- 302 重定向
- 304 读缓存
- 404 用户操作资源不存在
- 500服务器内部异常
响应头:响应第二行到空行结束
格式:key/value 常见的头:
- Location: http://www.it315.org/index.jsp --跳转方向 和302一起使用的
- Server:apache tomcat --服务器型号
- Content-Encoding: gzip --数据压缩
- Content-Length: 80 --数据长度
- Content-Language: zh-cn --语言环境
- Content-Type: text/html; charset=GB2312 --数据类型
- Refresh: 1;url=http://www.it315.org --定时刷新
- Connection: Keep-Alive --连接
响应体:空行一下的内容 页面展示的内容