目录
一、什么是HTTP协议
HTTP协议:规定了浏览器和服务器端的数据交互的格式
1.HTTP的特性:
1.基于请求和响应模型:
- 必须要先有请求,后有响应。
- 请求和响应必须成对出现。
2.简单快捷:因为发送请求的时候只需要发送请求方式和请求路径即可
二、HTTP协议的抓包分析
1.分析HTTP协议
1.1准备工作
创建页面:demo1.html
demo2.html:
1.2安装HTTPWatch
1.3分析HTTP协议
1.3.1请求部分:
***** GET方式的请求
GET /web_test/demo2.html?name=aaa&name=man HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 9561-10011
Referer: http://localhost:8080/web_test/demo1.html
Accept-Language: zh-CN
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
DNT: 1
Connection: Keep-Alive
***** POST方式的请求
POST /web_test/demo2.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 9561-10041
Referer: http://localhost:8080/web_test/demo1.html
Accept-Language: zh-CN
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: 19
DNT: 1
Connection: Keep-Alive
Cache-Control: no-cache
name=bbb&name=woman
响应部分
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"151-1484111223984"
Last-Modified: Wed, 11 Jan 2017 05:07:03 GMT
Content-Type: text/html
Content-Length: 151
Date: Wed, 11 Jan 2017 05:14:00 GMT
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Success锛侊紒锛?/h1>
</body>
</html>
三、HTTP协议之请求部分
1.请求部分可以分成三块
1.请求行:里面有请求方式、请求路径、协议版三个内容:
- 请求方式:请求方式有很多种,常用就两种GET和POST。
GET和POST的区别是什么呢?
GET:请求的参数会显示到地址栏。通常是有大小的限制。没有请求体
POST:请求的参数不会显示到地址栏(在请求体中)。POST没有大小的限制。有请求体(请求参数)。只有表单设置method=”post”才是post请求。
- 请求路径:web_test/demo2.html?name=aaa&name=man
- 协议版本:HTTP/1.1
2.请求头:
- 请求头的格式一般都是一个key对应一个value的,也有一个key对应多个value的情况。
- 记住一些请求头:1.Referer:代表网页的来源。(防盗链)。2.User-Agent:获得客户端浏览器类型。
3.请求体:只有POST请求方式才有请求体,而且请求体是POST方式请求参数。
四、HTTP协议之响应部分
1.响应部分分成三块内容
1.响应行:
- 协议版本:HTTP
- 状态码:200 :代表响应成功
302 :需要进行重定向操作
304 :需要查找本地缓存
404 :请求资源不存在
500 :服务器内部错误
- 状态码描述:OK
2.响应头
- 通常一个key对应一个value,也有一个key对应多个value。
- 记住响应头:Location :重定向的路径。
Refresh :定时刷新。
Content-Disposition:文件下载的时候使用
- 响应体;就是显示到浏览器上页面的代码。