认识请求"报头"(header)

header的整体的格式也是"键值对"结构.

每个键值对占⼀⾏.键和值之间使⽤分号分割.

报头的种类有很多,此处仅介绍⼏个常⻅的.

Host

表⽰服务器主机的地址和端⼝.

Content-Length

表⽰body中的数据⻓度.

Content-Type

表⽰请求的body中的数据格式.

常⻅选项:

• application/x-www-form-urlencoded:form表单提交的数据格式.此时body的格式形如:

            title=test&content=hello

• multipart/form-data:form表单提交的数据格式(在form标签中加上 enctyped="multipart/form-data" .通常⽤于提交图⽚/⽂件.body格式形如:

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3Trw

------WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="text"

title -

-----WebKitFormBoundaryrGKCBY7qhFd3TrwA

Content-Disposition: form-data; name="file"; filename="chrome.png"

Content-Type: image/png

PNG ... content of chrome.png ...

------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

• application/json:数据为json格式.body格式形如:

{"username":"123456789","password":"xxxx","code":"jw7l","uuid":"d110a05ccde64b16

关于Content-Type的详细情况:https://developer.mozilla.org/enUS/docs/Web/HTTP/Basics_of_HTTP/MIME_types

User-Agent(简称UA)

表⽰浏览器/操作系统的属性.形如

Mozilla/5.0 (Windows NT 10.0; Win64; x64)

AppleWebKit/537.36 (KHTML, like Gecko)

其中Windows NT 10.0; Win64; x64 表⽰操作系统信息 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77

Safari/537.36 表⽰浏览器信息.

User-Agent之所以是这个样⼦是因为历史遗留问题.可以参考

User-Agent的故事:https://zhuanlan.zhihu.com/p/398807396

Referer

表⽰这个⻚⾯是从哪个⻚⾯跳转过来的.形如

https://v.bitedu.vip/login

如果直接在浏览器中输⼊URL,或者直接通过收藏夹访问⻚⾯时是没有Referer的.

Cookie

Cookie中存储了⼀个字符串,这个数据可能是客⼾端(⽹⻚)⾃⾏通过JS写⼊的,也可能来⾃于服务器 (服务器在HTTP响应的header中通过Set-Cookie字段给浏览器返回数据). 往往可以通过这个字段实现"⾝份标识"的功能.

   每个不同的域名下都可以有不同的Cookie,不同⽹站之间的Cookie并不冲突.

可以通过抓包观察⻚⾯登陆的过程(以码云为例):

1)清除之前的cookie

为了⽅便观察,先清除掉之前登陆的cookie

在码云⻚⾯上,点击url左侧的图标,选择Cookie

然后移除已经存在的Cookie

2)登陆操作

登陆请求

登陆响应

3)访问其他⻚⾯

登陆成功之后,此时可以看到后续访问码云的其他⻚⾯(⽐如个⼈主⻚),请求中就都会带着刚才获取到 的Cookie信息

理解登陆过程

这个过程和去医院看病很相似.

1. 到了医院先挂号.挂号时候需要提供⾝份证,同时得到了⼀张"就诊卡",这个就诊卡就相当于患者的 "令牌".

2. 后续去各个科室进⾏检查,诊断,开药等操作,都不必再出⽰⾝份证了,只要凭就诊卡即可识别出当前 患者的⾝份.

3. 看完病了之后,不想要就诊卡了,就可以注销这个卡.此时患者的⾝份和就诊卡的关联就销毁了.(类似 于⽹站的注销操作)

4. ⼜来看病,可以办⼀张新的就诊卡,此时就得到了⼀个新的"令牌"

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐