HTTP | 青训营笔记

81 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

HTTP

Method

image.png

状态码

1xx 指示信息,表示请求已经被接收,继续处理
2xx 成功,表示请求已经被成功接收,处理,接收
  • 200 请求成功
3xx 重定向, 完成请求必须进行更进一步的操作
  • 301 永久重定向,请求已经被永久移动到新的URL
  • 302 临时重定向
4xx 客户端错误,请求有语法错误 or 请求无法实现
  • 400 请求错误,通常是访问的域名未绑定造成
  • 401 请求没有权限
  • 403 禁止访问,服务器理解请求,但是拒绝执行
  • 404 访问的资源不存在 or 已经被删除
5xx 服务器错误,服务器未能实现合法的请求
  • 500 服务器发生未知的错误
  • 502 服务器从上游的服务器接收到无效的响应
  • 503 服务器临时错误
  • 504 服务器响应超时

常用请求头

image.png

常用响应头

image.png

缓存

强缓存(报文)

image.png

协商缓存(报文)

image.png

流程

image.png

cookie

Set-Cookie-response(报文)

image.png

HTTP2部分简单提一下

  • 消息: 与逻辑请求和响应消息对应的完整的一系列帧。比如响应可以分为响应头一帧发送,响应体一帧发送,构成一个完整的消息。发送的特点:交错发送,接收方来重新组织。
  • HTTP2连接都是永久的,而且仅需要每个来源一个连接
  • 流控制:阻止发送方向接收方发送大量数据的机制。比如,在客户看视频的时候,如果点了暂停,就可以先拒绝相关的视频数据,将浏览器性能用到其他的地方。
  • 服务器推送:服务器在发送数据的时候可以额外主动的发送一些数据。比如,当浏览器请求html文件的时候,如果html文件里引用了css,js文件,服务器可以主动的将css,js文件和html文件一起发送给浏览器。;

HTTPS部分简单提一下

流程图

image.png

静态资源常见解决方案

缓存 + CDN + 文件名hash
  • 缓存:浏览器请求静态资源时会先看有没有缓存,有缓存,并且确认缓存新鲜有效的话,就会使用缓存。
  • CDN:会优先选择向离用户所在地最近的服务器发送请求。
  • 文件名hash:文件名里后面会添加一个hash值,这个hash值一般是对版本号的加密,当同一个文件名后面的hash值不同时,就会自动请求最新版本的文件。

跨域常见解决方案

  • cors:在发送正式请求前会先发送一次options类型的预请求,预请求的相关协议头会携带相关信息,这些信息会被服务器用来判断是否应该支持此次跨域请求。
  • 代理服务器:浏览器向服务器请求数据,存在跨域的问题,但是服务器向服务器请求数据是不存在跨域的,所以可以通过一个代理服务器来当中间者,代理发送请求,代理接收数据。
  • iframe:有很多不便的地方,感兴趣的话,请读者自行了解