初始HTTP| 青训营笔记

50 阅读3分钟

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

初识HTTP

什么是HTTP

全程:超文本传输协议

它是一种应用层协议,基于TCP

协议分析

发展

HTTP 0.9 :请求GET/mypage.html,响应只有HTML文档

HTTP 1.0: 增加了Header 有了状态码、支持多种文档类型

HTTP 1.1 标准化协议:链接复用、缓存 内容协商

HTTP 2 : 二进制协议 压缩header 服务器推送

Method

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

安全的:不会修改服务器数据的方法 GET HEAD OPTIONS

幂等:同样的请求执行一次和执行多次效果是一样的。 GET HEAD OPTIONS PUT DELETE

状态码

  • 200 OK 客户端请求成功
  • 301 资源被永久转移到其他URL
  • 302 临时跳转
  • 401 请求未授权
  • 404 NOT FOUND 资源未找到

RESTful API

一种API设计风格

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

Cookie

set-Cookie - response

Name=value各种cookie的名称和值
Expires=DateCookie的有效期,缺省时Cookie仅在浏览器关闭之前有效
Path=Path限制指定Cookie的发送范围的文件目录。默认为当前
Domain=domain限制cookie生效的域名,默认为创建cookie的服务域名
secure仅在HTTPS安全连接时,才可以发送cookie
HttpOnlyJavaScript脚本无法获得cookie
SameSite- None 同站、跨站请求都可以发送 -Strict仅在同站发送 -Lax允许与顶级导航一起发送,并且将第三方网站发起的GET请求一起发送

HTTP/2

帧(frame) :http/2通信的最小单位,每个帧都包含帧头、二进制

消息:与逻辑请求或响应消息对应的完整的一系列帧

数据流:已建立的连接内的双向字节流,可以承载一条或多条消息

HTTP/2 连接都是永久的,而且仅需要每个来源一个连接,流控制:阻止发送方向接收方发送大量数据的机制、服务器推送

HTTPS

在HTTP的基础上经过 TSL/SSL加密

  • 对称加密:加密和解密都是同一个秘钥
  • 非对称加密:加密和解密需要使用两个不同的秘钥:公钥和私钥