HTTP实用指南|青训营笔记

57 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

初识HTTP-什么是HTTP?

HTTP是Hyper Text Transfer Protocol(超文本传输协议)

  • 应用层协议,基于TCP/IP协议
  • 该协议是用于从万维网服务器传输超文本到本地浏览器的传送协议
  • 用大白话来说:HTTP就是一种约定协议,一种客户端跟服务端之间的约定协议。

协议分析-报文

HTTP报文可以理解为被传送的东西,也就是上述通信过程传递的东西,报文有两种。

  • 有从客户机到服务器的请求报文
  • 也有从服务器到客户机的响应报文或者叫应答报文
请求报文
  • 请求报文格式如下:

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

应答报文

  • 应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用

  1. 1XX:消息状态码。
  2. 2XX:成功状态码。
  3. 3XX:重定向状态码。
  4. 4XX:客户端错误状态码。
  5. 5XX:服务端错误状态码

缓存

缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。

  • 强缓存即强制直接使用缓存。
  • 协商缓存就得和服务器协商确认下这个缓存能不能用。

缓存--强缓存:

  • Expires,时间戳

  • Cache-Control可缓存性 其一:no-cache:协商缓存验证 ,其二:no-store:不使用任何缓存。

  • 到期 max-age:单位是秒,存储的最大周期,相对于请求的时间

  • 重新验证*重新加载must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用

缓存--协商缓存:

  • Etag/if-None-Match:资源的特定版本的标识符,类似于指纹

  • Last-Modified/If-Modified-Since:最后修改时间