HTTP 实用指南(一)|青训营笔记

95 阅读2分钟

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

一. 初识HTTP

什么是HTTP

  • Hyper Text Transfer Protocol超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 简单可拓展
  • 无状态

二. 协议分析

发展

image.png

报文

Method

  • GET: 请求一个指定资源的表示形式。使用GET的请求应该只被用于获取数据。

  • POST: 用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。

  • PUT: 用请求有效载荷替换目标资源的所有当前表示。

  • DELETE: 删除指定的资源。

  • HEAD: 请求一个与GET请求的响应相同的响应,但没有响应体

  • CONNECT: 建立一个到由目标资源标识的服务器的隧道。

  • OPTIONS: 用于描述目标资源的通信选项。

  • TRACE: 沿着到目标资源的路径执行一个消息环回测试。

  • PATCH: 用于对资源应用部分修改。


Safe(安全的): 不会修改服务器的数据的方法

GET、HEAD、OPTIONS

ldempotent(幂等): 同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有safe的方法都是Idempotent的

GET、HEAD、OPTIONS、PUT、DELETE

状态码

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

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

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

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

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

RESTful API

RESTful API : 一种API设计风格; REST - Representational State Transfer

(1) 每一个URI代表一种资源;

(2) 客户端和服务器之间,传递这种资源的某种表现层;

(3) 客户端通过HTTP method, 对服务器端资源进行操作,实现"表现层状态转化"。

常用请求头

image.png

常用响应头

image.png

缓存

强缓存

  • Expires, 时间戳
  • Cache- Control
    • 可缓存性

      • no-cache :协商缓存验证
      • no-store :不使用任何缓存
    • 到期

      • max-age :单位是秒,存储的最大周期,相对于请求的时间
    • 重新验证*重新加载

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

协商缓存

  • Etag/If- None -Match :资源的特定版本的标识符,类似于指纹
  • Last- Modified/lf- Modified-Since :最后修改时间

image.png

Cookie

Set-Cookie-response

image.png