目录

1.请求报头(header)

1.1Host        

1.2Content_Length

1.3Content_Type

1.4User_Agent(简称UA)

1.5Referer    

1.6Cookie

2.HTTP响应状态码

2.1 200OK

2.2 404 Not Found

2.3 403 Forbidden

2.4 405 Method Not Allowed

2.5 500 Internal Server Error

2.6 504 Gatewav Timeout

2.7 Move temporarily


1.请求报头(header)

header整体的结构也是键值对结构,分成很多行每一行是一个键值对,键和值之间yong “:” 分割。

1.1Host        

表示服务器主机的端口和地址。

1.2Content_Length

表示正文(body)中的数据长度,单位是字节。

如果一个HTTP请求没有body,那么在读到空行的时候就会直接结束;有body的HTTP请求,先读取首行和header,读到空行;再解析header中的Content_Length,根据这里的长度,来决定读取正文部分的长度。

1.3Content_Type

表示请求中body部分的数据格式。

这里会提示接收方如何解析body中的数据~~~

在HTTP中的数据种类有:

HTML:text/html

CSS:text/css

JS:application/javascript

JSON:application/json

图片:image/png,image/jpg

1.4User_Agent(简称UA)

表示浏览器或者操作系统的属性。

例如Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
 Mozilla/5.0 表示火狐浏览器。
Windows NT 10.0表示操作系统的版本。
AppleWebKit/537.36:浏览器内核。

1.5Referer    

描述了当前页面是从哪个也页面跳转过来的,如果直接输入url或者之间打开收藏栏的页面是没有referer的。

Referer:https://www.sogou.com/

这个是从主页跳转到搜狗搜素页,搜索页的referer。

Referer:https://www.msn.cn/zh-cn/news/other/%E4%B9%98%E9%A3%8E-2026-%E4%BA%94%E5%85%AC%E6%B7%98%E6%B1%B0%E4%BD%95%E5%AE%A3%E6%9E%97-%E4%B8%87%E5%8D%83%E6%83%A0-%E4%B8%8D%E6%84%8F%E5%A4%96-%E5%8D%B4%E5%A4%9A%E5%B0%91%E6%9C%89%E7%82%B9%E6%84%8F%E9%9A%BE%E5%B9%B3/ar-AA26bHSH?ocid=msedgntp&pc=U531&cvid=6a37d53b8d444675a75b9e1aff87ec57&ei=6

这个是从主页跳转到广告页,广告页的referer。

1.6Cookie

cookie就是运行网页在本地硬盘存储数据的一种机制,当然不是让网页代码直接文件系统而是做了一层抽象,给浏览器的Cookie键值对提供了存储机制。

在浏览器中我们可以直接查看使用了那些Cookie(点击F12,然后第点击Application,再点击左侧的Cookie,就可以查看)

例如

我们也可以利用fiddle进行抓包数据如下

 通过对比可以看出两个数据大部分相同。
           
浏览器保存了这些Cookie之后,在后面给服务器发送请求的时候,把这些Cookie键值对放到请求Cookie  header中传输给服务器(Cookie从哪里来:也是从服务器来的,但这个是由后端开发程序员决定的。)
典型例子:
这个过程和医院挂号差不多:
1. 到了医院先挂号. 挂号时候需要提供⾝份证, 同时得到了⼀张 "就诊卡", 这个就诊卡就相当于患者的
"令牌".
2. 后续去各个科室进⾏检查, 诊断, 开药等操作, 都不必再出⽰⾝份证了, 只要凭就诊卡即可识别出当前
患者的⾝份.
3. 看完病了之后, 不想要就诊卡了, 就可以注销这个卡. 此时患者的⾝份和就诊卡的关联就销毁了. (类似
于⽹站的注销操作)
4. ⼜来看病, 可以办⼀张新的就诊卡, 此时就得到了⼀个新的 "令牌"
补充:
结合之前的我们共有四个键值对:1.url的query string           程序员自定义
                                                      2.header部分键值对               标准规定
                                                      3.header中cookie里存储的数据也是键值对         程序员自定义
                                                      4.body是json 格式,也是键值对                         程序员自定义

2.HTTP响应状态码

状态码是描述一个响应的结果,是正确还是错误的,出错了是什么原因~~~

状态码有很多,但我们只需掌握其中常用的几个:

2.1 200OK

这是⼀个最常⻅的状态码, 表⽰访问成功.
抓包抓到的⼤部分结果都是 200,看图中的Result这里列
或者通过搜狗搜索爱坤,第一行也显示200OK

2.2 404 Not Found

这个意思是资源没有找到~

浏览器输⼊⼀个 URL, ⽬的就是为了访问对⽅服务器上的⼀个资源. 如果这个 URL 标识的资源不存在, 那么就会出现 404
也输入可以https://www.sogou.com/123.html结果也为404

通过抓包也可以看出来

2.3 403 Forbidden

表示拒绝被访问,有时候我们访问一个网页没有权限的话,就会出现这个警告。
例如我们查看码云的私有空间,如果不登陆就会出现403
https://gitee.com/HGtz2222/blog_python

2.4 405 Method Not Allowed

HTTP支持的方法有GET, POST, PUT, DELETE但是有些人的服务器不一定支持全部的方法,如果使用就会出现405。

2.5 500 Internal Server Error

服务器出现错误,或者服务器处理代码是抛异常,但是没有catch到此时就会500.

2.6 504 Gatewav Timeout

当服务器负载⽐较⼤的时候, 服务器处理单条请求的时候消耗的时间就会很⻓, 就可能会导致出现超时 的情况.(例如双十一,学校抢课时的官网等)

2.7 Move temporarily

临时重定向

重定向就相当于我本来的⼿机号是 186-1234-5678, 后来换了个新号码 135-1234-5678, 那么不需要让我的朋友知 道新号码, 只要我去办理⼀个呼叫转移业务, 其他⼈拨打 186-1234-5678 , 就会⾃动转移到 135-1234-5678 上.

也就是访问a ,a告诉我让我去找b

状态码整体有很多但可以总结为:2xx 都可以视为是成功。  

                                                      3xx都是重定向 。

                                                      4xx客户端出错,用户构造的请求有问题 。

                                                      5xx 服务器出错。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐