0
点赞
收藏
分享

微信扫一扫

Http协议总结

小月亮06 2022-02-17 阅读 64

OSI七层协议:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

TCP协议:三次握手(建立连接)和四次挥手(断开连接)

你能听到吗?

我能听到,你能听到吗?

我能听到

我要断开了

好,我还有一句话没说完

断开了

断开了

Http状态码

状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:

1xx:指示信息–表示请求已接收,继续处理

2xx:成功–表示请求已被成功接收、理解、接受

3xx:重定向–要完成请求必须进行更进一步的操作

4xx:客户端错误–请求有语法错误或请求无法实现

5xx:服务器端错误–服务器未能实现合法的请求

200 OK 客户端请求成功

301 永久重定向

302 Found 临时性重定向

400 Bad Request 客户端请求有语法错误,不能被服务器所理解

401 Unauthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403 Forbidden 服务器收到请求,但是拒绝提供服务

404 Not Found 请求资源不存在

500 Internal Server Error 服务器发生不可预期的错误

503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

通信是以报文的形式

客户端请求(Request):请求报文 = 请求头 + 空行 + 请求数据

Accept: 客户端可以处理的数据格式

Cookie:服务端的之前给我们的Cookie

服务端响应(Response):响应报文 = 响应头 + 空行 + 响应数据

Status Code:响应状态码

Content­Type:响应返回的类型 (文本,utf­8)图片等等

Set­Cookie:服务端给我们的Cookie,要保存起来,下次带过去

Cookie 、Session、Token

都是用来做持久化处理的,目的就是让客户端和服务端相互认识。Http请求默认是不持

久的没有状态的,谁也不认识谁

Cookie: 是存放在客户端的信息,这个信息是来自于服务器返回的信息,

下次请求带过去,如果用户离开网站后,如果Cookie已过期一般是会被清楚的。如果

Cookie没过期下次访问网站还是会带过去。(相对危险)

Session: 是存放在服务器上面的客户端临时信息,用户离开网站是会被清除的。(相对

安全,耗资源)

Token:用户身份的验证,有点类似于 Cookie ,相对来说更安全,一般流程:

1 客户端像服务端申请 Token

2 服务端收到请求,会去验证用户信息,签发一个 Token 给客户端,自己保存 Token

3 客户端收到 Token 会保存起来,每次请求带上 Token

4 服务器收到其他请求,会去验证客户端的 Token , 如果成功返回数据,不成功啥都不给

Http缓存

Cache-Control(缓存策略):Public、private、no-cache、max-age 、no-store(不缓存)

Expires(缓存的过期策略):缓存数据有效的绝对时间,告诉客户端到了这个时间点(比照客户端时间点)后本地缓存就作废了,在这个时间点内客户端可以认为缓存数据有效,可直接从缓存中加载展示。如果有缓存并且过期了那么发起请求,那么服务端会给我们数据?(不一定会给)服务器的数据没有变动就不会给,状态码会变为 304 ,自己拿之前过期的缓存。

详细的解释可参考以下资料:

彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法

举报

相关推荐

0 条评论