http实用指南 | 青训营笔记

180 阅读2分钟

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

基本信息

  • http(Hyper Text Transfer Protocol)也就是超文本传输协议
  • 是应用层上的协议,基于TCP的协议
  • 具有请求和响应两部分
  • 简单可扩展,如在头部分自定义一些含义
  • 无状态,每一份信息都是独立的,无法知道其他请求是什么样子的 image.png

协议发展历程

image.png 首先以http1.1为例子

⭐报文

不管是请求还是响应,都会有起始行、header、body,且结构一致

  • 在请求中,会携带请求方式和请求地址等信息
  • 在响应中,会携带响应状态码等信息 image.png

请求方法

image.png 方法的特点:

  • Safe安全的 ---- 有一些请求是安全的的,它不会修改服务器上的数据,只是去读取信息。 如 GET HEAD OPTIONS
  • idempotent幂等的 ---- 当同样的请求被执行一次与多次效果是一样的,服务器状态也是一样的,所有的safe方法都是幂等的。如 PUT DELETE

状态码

image.png

RestfulAPI

是一种设计风格,简单来说就是将状态码与操作准确的相结合,使用适合的语义去表达 image.png

请求头

image.png

响应头

image.png

缓存

可以分为两类,一类叫强缓存,一类叫协商缓存

  • 强缓存指,如果某资源本地有,就直接使用
  • 协商缓存指,如果本地有一段缓存,那么这段缓存能不能用,需要艮服务器端进行通行去询问
  • 不同缓存都会有自己的一些特殊字段,在协商缓存中,字段在请求和响应里是成对的 image.png

缓存行为过程

image.png

Cookie

在这里主要来看Set-Cookie-response字段的内容 这个是服务器返回给浏览器的一些设置Cookie的信息 image.png

⭐发展- HTTP2

目前各大厂都已经切换到了http2 它具有以下优点 image.png image.png image.png

⭐https

https实际上及时在http的基础上经过了TSL/SSL加密的过程,在传输过程中,安全性会更高 image.png

⭐场景分析

状态码 from disk cache 也就意味着这份内容是从缓存中拿到的 image.png

image.png

静态资源

  • CDN是一个内容分发的网络,有一个就近性的策略,能够让用户更快的拿到资源
  • 当我们需要对某份静态资源文件修改后重新分发部署时,需要让用户拿到这一份新的文件,但在客户端可能有一个缓存机制,这个时候就需要给文件编写一个hash值,每当文件发生改变时,hash值就会改变,这样也能保证用户能够拿到最新的文件 image.png

登录

以今日头条登录页面为例子 image.png image.png

跨域

image.png

鉴权

image.png

SSO 单点登录

image.png

⭐HTTP发起

image.png

image.png

image.png

image.png

image.png

image.png

⭐发散

image.png

http3 草案的一部分,但还没有实现 image.png