理解HTTP基础| 青训营笔记

138 阅读3分钟

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

本篇笔记的基本内容

  • HTTP的基本特点与结构
  • HTTP的使用场景
  • 了解一些其他的协议

HTTP的基本概念

什么是HTTP

Hyper Text Transfer Protocol(超文本传输协议),是基于传输层TCP协议的一个应用层协议,可以承载多种体裁(如HTML,CSS,JS,Web API等),是一个简单可扩展的协议。
每一个HTTP请求都分为请求响应两部分。HTTP协议是一个无状态的协议,每一个请求之间都是孤立的。

HTTP协议分析

Method

  • GET:用于获取数据
  • POST:将实体提交到指定的资源,一般用于第一次提交数据
  • PUT:替换目标资源的当前表示,一般用于更新数据
  • DELETE:删除指定资源
  • HEAD:请求一个与GET请求相同的响应,但没有响应体(只返回相应头,不返回信息),用于检查一个文件是否存在
  • CONNECT:建立一个到由目标资源表示的服务器的隧道
  • OPTIONS:获取目的资源所支持的通信选项,检测某个请求在对应的服务器中都支持哪种请求方法
  • TRACE
  • PATCH:用于更新局部资源

状态码

状态码表示信息
1xx指示信息,表示请求已收到,继续处理
2xx表示请求已被成功接收、理解、接受
3xx重定向,要完成请求必须进行进一步操作
4xx客户端错误,请求有语法错误或请求无法实现
5xx服务端错误,服务器未能实现合法请求

常见状态码

状态码表示信息
200OK,表示请求成功
301资源被永久转移到其他URL
302临时跳转
401请求未经授权
404NOT FOUND,请求资源不存在,可能输入URL错误
500服务器内部发生不可预期的错误
504BAD GATEWAY,网关或代理服务器无法在规定时间内获得响应

HTTPS

HTTPS(Hypertext Transfer Peotocol Secure)协议是由 HTTP 加上 TLS / SSL 协议构建的可进行加密传输、身份认证的网络协议。

  • 对称加密:加密和解密使用同一个公钥
  • 非对称加密:加密和解密使用不同的密钥,公钥(public key)和私钥(private key)

场景分析

静态资源

静态资源一般采用缓存策略。
先判断文件是否过期,如果没有过期则触发强制缓存策略,用户发送的请求会直接从客户端缓存中获取,不发送请求到服务器,不与服务器发生交互行为,浏览器直接读取本地文件,http状态码为200。
若文件过期,则触发协商缓存,发起请求向服务器询问该文件是否有更新,没有则使用本地缓存,有责返回新的文件。并且都会更新新的过期时间。

登录

请求

  • 方法:POST
  • 目标域名
  • 目标文件路径

返回

  1. 携带信息
  • post body,有数据格式
  • 希望获取的数据格式
  • 已有的cookie
  1. 返回信息
  • 返回希望获取的数据格式
  • cookie的信息

其他协议

  • WebSocket
    实时性要求高,可以用于实时聊天。URL使用 ws:// 或 wss:// 等开头
  • QUIC