HTTP实用指南 | 青训营笔记

103 阅读3分钟

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

初识HTTP

HTTP基本知识点:

  • 超文本传输协议,Hyper Text Transfer Protocol
  • 基于TCP协议的应用层协议
  • 简单可扩展(可在Header中自定义数据)
  • 无状态

无状态:无状态即所有的资源都可以直接通过URI定位,而且这个定位可以自立,与其他资源无关。“举个例子说明一下有状态和无状态的区别,如果要查询员工工资的步骤为第一步:登录系统。第二步:进入查询工资的页面。第三步:搜索该员工。第四步:点击姓名查看工资。这样的操作流程就是有状态的,查询工资的每一个步骤都依赖于前一个步骤,只要前置操作不成功,后续操作就无法执行。如果输入一个URL就可以得到指定员工的工资,则这种情况就是无状态的,因为获取工资不依赖于其他资源或状态。”

HTTP协议版本历史

QQ截图20220822110200.png

HTTP/2中的二进制协议使用进行通信

帧:HTTP/2通信的最小单位,每个帧都包含帧头,至少会标识出当前帧所属的数据流

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

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

流控制:阻止发送方向接收方发送大量数据的机制。

请求方法

QQ截图20220822110644.png

  • 我们称不会修改服务器数据的方法是安全(safe)的方法,如:GET HEAD OPTIONS

  • Idempotent(幂等):对于同一个系统,在同样条件下,一次请求和重复多次请求对资源的影响是一致的,就称该操作为幂等的。

  • GET,HEAD,OPTIONS,PUT,DELETE都是幂等的

状态码

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

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

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

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

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

常用状态码

  • 200 请求成功
  • 301 永久重定向
  • 302 临时重定向
  • 401 请求未经授权
  • 404 请求资源不存在
  • 500 服务器内部发生了不可预期的错误
  • 503 服务不可用
  • 504 网关或代理服务器无法在规定的时间内获得期望响应

RESTful API

QQ截图20220822110200.png

  • REST是一种架构风格,跟编程语言无关,跟平台无关,采用HTTP做传输协议
  • RESTful API就是使用一套协议来规范多种形式的前端和同一个后台的交互
  • ajax+json就是符合rest风格的架构
  • 实现了前后端的分离
  • 可以将前端和后端部署到不同的服务器上来减轻服务器压力,提高安全度

简单来说RESTful API就是 :用URL(名词)定位资源用HTTP动词(GET、POST、PUT、DELETE)描述操作

缓存

QQ截图20220822110644.png QQ截图20220822113018.png

QQ截图20220822110200.png QQ截图20220822110200.png

cookie

cookie就是一些数据,存储了服务器返回给客服端的信息,客户端进行保存。在下一次访问该网站时,客户端会将保存的cookie一同发给服务器,服务器再利用cookie进行一些操作。利用cookie我们就可以实现自动登录,保存游览历史,身份验证等功能。

QQ截图20220822110200.png

拓展

XMLHttpRequest,Fetch,axios

参考文章

什么是RESTful API?
cookie是什么?有什么用?cookie详解,一篇文章彻底搞懂cookie
cookie百度百科

总结

通过这次课程我基本把握了有关http的常用术语,了解了自己时常使用的网站的运行结构,希望这篇文章可以对大家有所帮助!