文章目录
1、HTTP协议介绍
HTTP协议是Hyper Text Transfer Protocol
(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本(也可以说是资源)到本地浏览器的传送协议。
HTTP协议是基于TCP协议的应用层协议,它不关心数据在底层传输的细节(底层细节需要很多网络方面的知识,这里不扩展说明),主要是用来规定客户端和服务端的数据传输格式(就是定义一种标准),默认端口是80。
http是基于请求与响应模式的、无状态的、应用层的协议。
2、使用Fiddler抓取一个请求
开启Fiddler工具,在浏览器中发送一个HTTP请求,之后在Fiddler中就会抓取到该请求。
双击抓取的请求链接,在右侧窗口就会显示出该请求的请求报文和响应报文内容,如下图:
我们也可以一个请求保存到本地,
选中该HTTP请求,点击右键 —> Save —> Selected Sessions —> as Text…
把该HTTP请求的请求报文和响应报文存储到一个text文件中。
===========请求报文:也就是客户端发给服务器的数据=============
GET http://127.0.0.1:8000/api/departments/ HTTP/1.1
Host: 127.0.0.1:8000
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
=========响应报文:=======================
HTTP/1.0 200 OK
Date: Wed, 13 Jan 2021 14:59:00 GMT
Server: WSGIServer/0.2 CPython/3.5.4
Vary: Cookie
Content-Type: application/json
Content-Length: 1789
X-Frame-Options: SAMEORIGIN
Allow: GET, POST, DELETE
{
"count":3,
"next":null,
"previous":null,
"results":[
{
"dep_id":"T02",
"dep_name":"Java_2学院",
"master_name":"Java-Master",
"slogan":"java"
},
{
"dep_id":"T03",
"dep_name":"Java_3学院",
"master_name":"Java-Master",
"slogan":"java"
},
{
"dep_id":"T04",
"dep_name":"C++/学院",
"master_name":"C++-Master",
"slogan":"Here is Slogan"
}
]
}
3、НТТP请求报文
(1)НТТP请求报文说明
HTTP请求报文主要由请求行、请求头部、空一行、请求正文4部分组成。
请求正文也可以说成请求体,请求体可能有如Get请求,也可能没有如POST请求。
HTTP请求报文协议格式:
在Fiddler中抓取的请求中,在请求头部信息中,点击raw选项就可以看到如下信息。