HTTP协议 | 青训营笔记

90 阅读2分钟

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

HTTP协议

01.初始HTTP

image-20230120212206160

什么是HTTP

  • Hyper Text Transfer Protocol
  • 应用层协议,基于TCP协议
  • 请求响应
  • 简单可扩展
  • 无状态:没有记忆能力,每个请求都是独立的
TCP协议特点
  • 面向连接

    • 建立和关闭连接
  • 点对点(一对一)

  • 可靠交付

    • 错误确认和重传
  • 面向字节流,也就是说仅把上层协议传递过来的数据当成字节传输

    • 拥塞控制
    • 流量控制(发送方和接收方的传输速率协调)

02.协议分析

请求方法

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

    • GET/HEAD/OPTIONS
  • Idempoten幂等的方法:多次执行效果一致,服务器状态也一致

    • GET/HEAD/OPTIONS/PUT/DELETE
    • 安全的方法都是幂等的

    状态码

    • 200 OK-客户端请求成功
    • 301-资源(网页等)被永久转移到其它URL
    • 302-临时跳转
    • 401 Unauthorized-请求未经授权
    • 404-请求资源不存在,可能是输入了错误的URL
    • 500-服务器内部发生了不可预期的错误
    • 504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应。

image-20230120225349468

RESTful API

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

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