初识http | 青训营

62 阅读3分钟

初始HTTP——什么是HTTP

 

  • Hyper Text Transfer Protocol 超文本传输协议

  • 应用层协议,基于TCP协议

  • 请求 响应

  • 简单可扩展

  • 无状态

image.png

 

协议分析——发展

HTTP/0.9单行协议:

  • 请求GET/mypage.html

  • 响应只有HTML文档

HTTP/1.0构建可扩展性:

  • 增加了Header

  • 有了状态码

  • 支持多种文档类型

  • ……

HTTP/1.1标准化协议:

  • 链接复用

  • 缓存

  • 内容协商

  • ……

HTTP/2更优异的表现:

  • 二进制协议

  • 压缩header

  • 服务器推送

  • ……

HTTP/3 草案:

 

image.png

 

协议分析——报文

 

image.png

 

Method

GET请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据。
POST用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。
PUT用请求有效载荷替换目标资源的所用当前表示。
DELETE删除指定的资源。
HEAD请求一个与GET请求的响应相同的响应,但没有响应体。
CONNECT建立一个到由目标资源标识的服务器的隧道。
OPTIONS用于描述目标资源的通信选项。
TRACE沿着到目标资源的路径执行一个消息环回测试。
PATCH用于对资源应用部分修改。

 

请求特点:

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

GET HEAD OPTIONS

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

GET HEAD OPTIONS PUT DELETE

 

状态码(三位):

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

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

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

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

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

 

200 OK - 客户端请求成功

301 - 资源(网页等)被永久转移到其它URL

302 - 临时跳转

401 - Unauthorized - 请求未经授权

404 - 请求资源不存在,可能是输入了错误的URL

500 - 服务器内部发生了不可预期的错误

504 Gateway Timeout - 网关或者代理的服务器无法在规定的时间内获得想要的响应

 

RESTful API

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

  1. 每一个URL代表一种资源
  2. 客户端和服务端之间,传递这种资源的某种表现层;
  3. 客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化”。

image.png  

常用请求头

image.png

 

常用响应头

image.png

 

缓存

强缓存:
  • Expires 时间戳

  • Cache-Control

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

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

    • must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用
协商缓存
  • Etag/If-None-Match:资源的特定版本的标识符,类似于指纹

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

 

image.png