HTTP
- 一 : 请求报文
- 1.2 : 首行
- 1.3 :请求头(header)
- 1.4 : 空行
- 1.5 : 正文 body
- 二: 响应报文
- 2.2 : 首行
- 三 : URL
一 : 请求报文
一个HTTP 请求报文, 分成四个部分
- 首行
GET https://cn.bing.com/?FORM=Z9FD1 HTTP/1.1 - 请求头(header)
- 空行
- 正文(body)
1.2 : 首行
首行又分为三个部分 :
每个部分用空格分开
-
请求的方法
常用的是get ,post -
请求的URL(请求对方的网址)
https://cn.bing.com/?FORM=Z9FD1 -
版本号
HTTP/1.1
1.3 :请求头(header)
Host: cn.bing.com
Connection: keep-alive
sec-ch-ua: "Microsoft Edge";v="125", "Chromium";v="125", "Not.A/Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-full-version: "125.0.2535.92"
sec-ch-ua-arch: "x86"
sec-ch-ua-platform: "Windows"
sec-ch-ua-platform-version: "15.0.0"
sec-ch-ua-model: ""
sec-ch-ua-bitness: "64"
sec-ch-ua-full-version-list: "Microsoft Edge";v="125.0.2535.92", "Chromium";v="125.0.6422.142", "Not.A/Brand";v="24.0.0.0"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0
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.7
X-Edge-Shopping-Flag: 1
Sec-MS-GEC: BFD14D47620813CF85C4BEA6A7276CA55A90076C3B3BB4C444FA71ACD39C3B7C
Sec-MS-GEC-Version: 1-125.0.2535.92
X-Client-Data: eyIxIjoiNiIsIjEwIjoiXCJ3YXpoSThxZUtPeExFZW12QnZIc3oyZWhVTTF2dHMyZlMzc2xrckRQSDB3PVwiIiwiMiI6IjEiLCIzIjoiMCIsIjQiOiI4ODA0MjM2OTcxODY2ODQwMDIwIiwiNSI6IlwiRVptMXZwSFE4WjBNaloxcnhTV3hlNG9PN3ZybFVMa0tHUzhmcW9nK3BhYz1cIiIsIjYiOiJzdGFibGUiLCI3IjoiODE0MzI1Nzk5MzIxOCIsIjkiOiJkZXNrdG9wIn0=
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: MUID=01E0544F270D6A12383C4651264E6BAC; MUIDB=01E0544F270D6A12383C4651264E6BAC; ANON=A=E7DA23DC35632435175F247CFFFFFFFF&E=1b62&W=1; SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=1002DD6328E942158129F3F23A5BA4F6&dmnchg=1; MSPTC=cdrtccd0ncoGomQ0fAkgc5O935A034ns4PZabkYGXEc; mapc=rm=0; MMCASM=ID=60B86865D2B443A9A3AB1F05B3A261DB; _uetvid=58dd39407bd811ee9dcf5f4255ee095d; imgv=lodlg=1; _UR=QS=0&TQS=0; MicrosoftApplicationsTelemetryDeviceId=9aefe8c7-92ef-444b-8d18-0ae4eb3a0af9; USRLOC=HS=1&ELOC=LAT=43.82047653198242|LON=125.28246307373047|N=%E6%9C%9D%E9%98%B3%E5%8C%BA%EF%BC%8C%E5%90%89%E6%9E%97%E7%9C%81|ELT=2|&CLOC=LAT=43.87274994287744|LON=125.32910710329867|A=733.4464586120832|TS=240613141332|SRC=W&BID=MjQwNjEzMjIxMzMyX2Q1NDhiOTQyMWY5Mzc5ZDYyZTkzZGU0Y2E3ZDI5YmQ5MDc0MWYzNzFjZTkxY2NiMzQ4NDNlNjU1M2EzMzI0ZGU=; SRCHUSR=DOB=20220913&T=1718240761000&POEX=W; _HPVN=CS=eyJQbiI6eyJDbiI6OCwiU3QiOjAsIlFzIjowLCJQcm9kIjoiUCJ9LCJTYyI6eyJDbiI6OCwiU3QiOjAsIlFzIjowLCJQcm9kIjoiSCJ9LCJReiI6eyJDbiI6OCwiU3QiOjAsIlFzIjowLCJQcm9kIjoiVCJ9LCJBcCI6dHJ1ZSwiTXV0ZSI6dHJ1ZSwiTGFkIjoiMjAyNC0wNi0xM1QwMDowMDowMFoiLCJJb3RkIjowLCJHd2IiOjAsIlRucyI6MCwiRGZ0IjpudWxsLCJNdnMiOjAsIkZsdCI6MCwiSW1wIjozOSwiVG9ibiI6MH0=; ABDEF=V=13&ABDV=13&MRNB=1718240838725&MRB=0; GC=B7YWfB1NrTCr5I2yx1pD7vO9TM8cwOh7jk_bwI3Nz8j-rN8o4beSIAqy-cEbgl9BngjEaFqEoaP6_xxQTCondQ; SRCHHPGUSR=SRCHLANG=zh-Hans&PV=15.0.0&BZA=0&BRW=XW&BRH=M&CW=1488&CH=708&SW=1536&SH=864&DPR=1.3&UTC=480&DM=0&EXLTT=31&HV=1718240863&PRVCW=1488&PRVCH=708&SCW=1473&SCH=3147&PR=1.25&UANG=1&SPLSCR=1; _RwBf=ilt=81&ihpd=0&ispd=1&rc=245&rb=245&gb=0&rg=0&pc=245&mtu=0&rbb=0.0&g=0&cid=&clo=0&v=15&l=2024-06-12T07:00:00.0000000Z&lft=0001-01-01T00:00:00.0000000&aof=0&o=0&p=MSAAUTOENROLL&c=MR000T&t=8704&s=2023-09-30T12:14:29.7354964+00:00&ts=2024-06-13T01:07:35.8833463+00:00&rwred=0&wls=0&lka=0&lkt=0&TH=&mte=0&dci=0&mta=0&wlb=0&e=KaEtLC6zmeypuluqIux8kznMLLO7lnhU2AhCKVR86tobdbkfmUKxv1Ox-q3LqEcsqxJUelyeYsWPdXIvMV90Pw&A=E7DA23DC35632435175F247CFFFFFFFF&aad=0&ard=0001-01-01T00:00:00.0000000&wle=1&ccp=2&rwdbt=0001-01-01T16:00:00.0000000-08:00&rwflt=2024-05-07T00:02:09.1335728-07:00&cpt=0; _EDGE_S=SID=29A66B7BEED868571D1E7FE6EF9B694B; SNRHOP=I=&TS=; WLS=C=e3a7cd0f36831363&N=%e5%85%b6; _SS=SID=29A66B7BEED868571D1E7FE6EF9B694B; _U=1ghA0Ursw7Mt1kTI7zm2V0Ns8K81g7Blf2U6_ZfUwhrHpI60YAU2XgW4PnuXSViyMOeQiROlFjK3HM4DIHOLqHMKbGMJZThQN6mpEEsBeaPcSyV8gxog500J9Lvh1ap0eswIfhk-kb2AYM1aZFcwlglz9YZAIfoHgYUQi1YzJEvGhc6mo55-u3EJWkNVyTbGwg0WFPinue8GAIm_iltK9iA
header 中可以包含若干行数据,而且采用的是键值对的方式, 每一行是一个键值对,键和值之间,使用 : 分割
这里的键都是有标准规定的.
1.4 : 空行
最后一个header 后面 , 存在一个空行,当遇到空行的时候,说明请求头已经结束了
请求头结束的标志.
1.5 : 正文 body
可选的 , 有些情况下有正文, 有些情况下,没有正文
一般get 请求报文没有正文, post 请求报文有正文.
响应报文一般都有正文.
程序员可以自由定义 , body中的数据内容和格式.
二: 响应报文
- 首行
- 响应报头(header)
- 空行
- 正文(body)
主要讲一下首行, 响应报头与请求报头相似,空行,正文部分和请求报文都是相似的
2.2 : 首行
包括三个部分:
- 版本号
- 状态码
- 状态码描述
状态码和状态码描述表示这是一个成功的响应,还是失败的响应,如果失败了, 具体是什么原因.
三 : URL
- 协议方案名
- 登录信息
现在已经废弃了 - 服务器地址
描述了要访问的服务器是哪一个, IP地址/域名 - 服务器端口号
url 中的端口号可以省略不写,不写的时候,浏览器会设置一个默认的端口
如果是http 协议, 端口号使用 80 , 如果是 https , 端口号使用443 - 带层次的文件路径
描述了要访问服务器的哪个资源
一个服务器,可以提供很多资源供外界访问,比如,一个web服务器(网站) , 就可能包含很多不同的网页,就可以通过这里的路径进行区分了
6 ) 查询字符串
就是一些参数,通过参数,把一些客户端想要传给服务器的数据告知过去
查询字符串也是键值对形式, 使用& 来进行键值对之间的分割, 使用 = 来进行键和值之间的分割
这里的键值对都是相关工作人员自定义的.
7) 片段标识符
区分页面中的不同部分(文档类网站)