这是我参与「第四届青训营 」笔记创作活动的的第三天
初识HTTP
HTTP基本知识点:
- 超文本传输协议,Hyper Text Transfer Protocol
- 基于TCP协议的应用层协议
- 简单可扩展(可在Header中自定义数据)
- 无状态
无状态:无状态即所有的资源都可以直接通过URI定位,而且这个定位可以自立,与其他资源无关。“举个例子说明一下有状态和无状态的区别,如果要查询员工工资的步骤为第一步:登录系统。第二步:进入查询工资的页面。第三步:搜索该员工。第四步:点击姓名查看工资。这样的操作流程就是有状态的,查询工资的每一个步骤都依赖于前一个步骤,只要前置操作不成功,后续操作就无法执行。如果输入一个URL就可以得到指定员工的工资,则这种情况就是无状态的,因为获取工资不依赖于其他资源或状态。”
HTTP协议版本历史
HTTP/2中的二进制协议使用帧进行通信
帧:HTTP/2通信的最小单位,每个帧都包含帧头,至少会标识出当前帧所属的数据流
消息:与逻辑请求或响应信息对应的完整的一系列帧。
数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。
流控制:阻止发送方向接收方发送大量数据的机制。
请求方法
-
我们称不会修改服务器数据的方法是安全(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
- REST是一种架构风格,跟编程语言无关,跟平台无关,采用HTTP做传输协议
- RESTful API就是使用一套协议来规范多种形式的前端和同一个后台的交互
- ajax+json就是符合rest风格的架构
- 实现了前后端的分离
- 可以将前端和后端部署到不同的服务器上来减轻服务器压力,提高安全度
简单来说RESTful API就是 :用URL(名词)定位资源、用HTTP动词(GET、POST、PUT、DELETE)描述操作
缓存
cookie
cookie就是一些数据,存储了服务器返回给客服端的信息,客户端进行保存。在下一次访问该网站时,客户端会将保存的cookie一同发给服务器,服务器再利用cookie进行一些操作。利用cookie我们就可以实现自动登录,保存游览历史,身份验证等功能。
拓展
XMLHttpRequest,Fetch,axios
参考文章
什么是RESTful API?
cookie是什么?有什么用?cookie详解,一篇文章彻底搞懂cookie
cookie百度百科
总结
通过这次课程我基本把握了有关http的常用术语,了解了自己时常使用的网站的运行结构,希望这篇文章可以对大家有所帮助!