1. http状态码

  • 1xx:服务器收到请求,但是没有返回结果。
  • 2xx:请求成功。200成功。
  • 3xx:重定向。301永久重定向,302临时重定向,304资源未被修改。
  • 4xx:客户端错误。404资源未找到,403没有访问权限。
  • 5xx:服务端错误。500服务器错误,504网关超时。

2. http methods

2.1 传统的methods

2.2 现在的methods

2.3 Restful API

Restful API是一种新的API设计方法(早已推广使用)。传统API设计是把每个URL当作一个功能。Restful API设计:把每个URL当作一个唯一的资源。

Restful不使用URL参数
【面试题】http协议-LMLPHP
传统API设计,用method表示操作类型

【面试题】http协议-LMLPHP
Restful API设计,用method表示操作类型
【面试题】http协议-LMLPHP

3. http headers

3.1 请求头 Request headers

3.2 响应头 Response headers

3.3 缓存相关的headers

  • Cache-Control
  • Expires
  • Last-Modified
  • If-Modified-Since
  • Etag
  • If-None-Match

4. http缓存

浏览器第一次访问网站时,服务端需要把数据发送给服务器,当浏览器再次访问网站时,服务器就不需要再次发送,浏览器可以从缓存中获取数据。网络请求不稳定,缓存可以减少网络请求的数量,提升加载和渲染的效率。

4.1 强制缓存(Cache-Control)

强制缓存Cache-Control,加在Response headers中,可以加快页面的访问速度。
例如:Cache-Control:max-age=31536000 (单位是秒)
【面试题】http协议-LMLPHP

4.2 协商缓存(对比缓存)

协商缓存是服务端的缓存策略,服务端判断资源是否可以直接使用本地缓存中的内容。
服务端判断客户端资源(使用资源标识进行判断),如果请求的资源和服务端一样,就返回304,直接使用本地缓存中的资源;如果请求的资源和服务端资源不一样,就返回200和最新的资源。
【面试题】http协议-LMLPHP
资源标识保存在Response Headers中,有两种:

  1. Last-Modified 资源的最后修改时间
  2. Etag 资源的唯一标识(一个字符串)

Last-Modified只能精确到秒级,Etag更精确,优先使用Etag。
【面试题】http协议-LMLPHP
【面试题】http协议-LMLPHP
【面试题】http协议-LMLPHP

4.3 刷新对缓存的影响

12-06 03:06