侧边栏壁纸
  • 累计撰写 119 篇文章
  • 累计创建 25 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

http协议

梁来福
2022-02-05 / 0 评论 / 0 点赞 / 2 阅读 / 5655 字
温馨提示:
本文最后更新于 2024-05-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

开发者工具介绍

image.png

image.png

image.png

image.png

image.png

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 服务器内部源代码出现错误
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论