开发者工具介绍
HTTP请求报文
常见方式两种
1、GET方式
获取web服务器数据,比如:获取新闻信息
http get请求报文
------请求行------
GET / HTTP/1.1 #请求行:请求方法 请求的资源路径 http协议的版本
------请求头------
Host: www.baidu.com #服务器的主机ip地址和端口号
Connection: keep-alive #和服务端程序保存长连接
Pragma: no-cache
Cache-Control: no-cache
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"
Upgrade-Insecure-Requests: 1 #表示客户端请求为不安全请求,要使用https
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 #用户代理,客户端程序名称
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 #告诉服务端程序可以接受的数据类型
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br #告诉服务端程序支持的压缩算法
Accept-Language: zh-CN,zh;q=0.9 #告诉服务端程序支持的语言
Cookie: BIDUPSID=A4A79D6FC1C7D716E452A684956CF88B; PSTM=1607530229; BD_UPN=123253; __yjs_duid=1_f49b9ad7 #客户端用户身份的标识
------空行------
\r\n
http get请求报文原始数据
------请求行------
GET / HTTP/1.1\r\n
------请求头------
Host: www.baidu.com\r\n
Connection: keep-alive\r\n
Pragma: no-cache\r\n
Cache-Control: no-cache\r\n
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"\r\n
sec-ch-ua-mobile: ?0\r\n
sec-ch-ua-platform: "macOS"\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\r\n
Sec-Fetch-Mode: navigate\r\n
Sec-Fetch-User: ?1\r\n
Sec-Fetch-Dest: document\r\n
Accept-Encoding: gzip, deflate, br\r\n
Accept-Language: zh-CN,zh;q=0.9\r\n
Cookie: BIDUPSID=A4A79D6FC1C7D716E452A684956CF88B; PSTM=1607530229; BD_UPN=123253; __yjs_duid=1_f49b9ad7\r\n
------空行------
\r\n
http get请求报文的格式
请求行\r\n
请求头\r\n
空行(\r\n)
注意:每项信息之间都需要一个\r\n,http协议的规定
2、POST方式
向web服务器提交数据,比如:登录的时候需要发送给服务端用户名密码
http post请求报文的格式
请求行\r\n
请求头\r\n
空行(\r\n)
请求体
注意:请求体就是浏览器发送给服务器的数据
小结
- 一个http请求报文可以由请求行,请求头,空行和请求体四个部分组成
- 请求行是由三部分组成:
1、请求方式
2、请求资源路径
3、http协议版本 - GET方式的请求报文没有请求体
- POST方式的请求报文有请求行,请求头,空行和请求体四个部分
注意:POST方式可以允许没有请求体,但是这种格式很少见
HTTP响应报文
报文解析
------响应行------
HTTP/1.1 200 OK #http协议版本 状态码 状态描述
------响应头------
Bdpagetype: 1
Bdqid: 0xe5c619a9000020e3
Cache-Control: private
Connection: keep-alive #和客户端保持长连接
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8 #服务器发送给浏览器的内容类型和编码格式
Date: Tue, 15 Mar 2022 08:40:01 GMT #服务器时间
Expires: Tue, 15 Mar 2022 08:39:34 GMT
Server: BWS/1.1 #服务器的名称
Set-Cookie: BDSVRTM=0; path=/
Set-Cookie: BD_HOME=1; path=/
Set-Cookie: H_PS_PSSID=35835_35970_35106_31253_36005_36090_34584_35872_36075_35949_35993_35956_35984_35320_26350_36061; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Traceid: 1647333601143537997816556949293714383075
X-Frame-Options: sameorigin
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked 服务器发送给客户端程序(浏览器)的数据不确定数据长度,数据发送结束的接收标识:0\r\n,Content-Length:200(字节),服务器发送给客户端程序的数据确定长度。内容长度这两个选项只能二选一
------空行------
\r\n
------响应体 就是真正意义上给浏览器解析使用的数据------
网页数据
**提示:**对于请求头和响应头信息都可以进行自定义,按照客户端和服务端约定好的方式来指定即可
原始报文解析
------响应行------
HTTP/1.1 200 OK\r\n
------响应头------
Bdpagetype: 1\r\n
Bdqid: 0xe5c619a9000020e3\r\n
Cache-Control: private\r\n
Connection: keep-alive\r\n
Content-Encoding: gzip\r\n
Content-Type: text/html;charset=utf-8\r\n
Date: Tue, 15 Mar 2022 08:40:01 GMT\r\n
Expires: Tue, 15 Mar 2022 08:39:34 GMT\r\n
Server: BWS/1.1\r\n
Set-Cookie: BDSVRTM=0; path=/\r\n
Set-Cookie: BD_HOME=1; path=/\r\n
Set-Cookie: H_PS_PSSID=35835_35970_35106_31253_36005_36090_34584_35872_36075_35949_35993_35956_35984_35320_26350_36061; path=/; domain=.baidu.com\r\n
Strict-Transport-Security: max-age=172800\r\n
Traceid: 1647333601143537997816556949293714383075\r\n
X-Frame-Options: sameorigin\r\n
X-Ua-Compatible: IE=Edge,chrome=1\r\n
Transfer-Encoding: chunked\r\n
------空行------
\r\n
------响应体 就是真正意义上给浏览器解析使用的数据------
网页数据
http响应报文格式
响应行\r\n
响应头\r\n
空行\r\n
响应体\r\n
**提示:**每项信息之间都要有一个\r\n进行分割
小结
响应行是由三部分组成:HTTP协议版本 状态码 状态描述,最常见的状态码是200
状态码介绍
- 200 请求成功
- 307 重定向
- 400 错误的请求,请求地址或者参数有误
- 404 请求资源在服务器不存在
- 500 服务器内部源代码出现错误