这是我参与「第四届青训营 」笔记创作活动的的第8天,是关于《HTTP实用指南》的学习。
HTTP
什么是HTTP?
-
Hyper Text Transfer Protocol 超文本传输协议
-
应用层协议 基于TCP协议
-
请求响应
-
简单可扩展
-
无状态
协议分析
发展
以HTTP/1.1为例子
Method
Safe(安全的):不会修改服务器的数据的方法(GET HEAD OPTINONS)
Idempot(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的。 所有safe的方法都是幂等的(GET HEAD OPTINONS PUT DELETE)
状态码
-
200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果
-
301:客户端请求的网页已经永久移动到新的位置,当链接发生变化时,返回301代码告诉客户端链接的变化,客户端保存新的链接,并向新的链接发出请求,已返回请求结果
-
Unauthorized 请求未经授权
-
404:请求失败,客户端请求的资源没有找到或者是不存在
-
500:服务器遇到未知的错误,导致无法完成客户端当前的请求。
-
503:服务器由于临时的服务器过载或者是维护,无法解决当前的请求,以上http状态码是服务器经常返回的状态代码,用户只能通过浏览器的状态了解服务器是否正常运行,一般除了错误的状态码,都不会看到服务器的状态码的
常用请求头
| Accept | 可接受的响应内容类型(Content-Types)。 | Accept: text/plain | 固定 | |
|---|---|---|---|---|
| Content-Type | 请求体的MIME类型 (用于POST和PUT请求中) | Content-Type: application/x-www-form-urlencoded | 固定 | |
| From | 发起此请求的用户的邮件地址 | From: user@itbilu.com | 固定 | |
| Origin | 发起一个针对跨域资源共享的请求 | Origin: http://www.itbilu.com | 固定: 标准 | |
| Cache-Control | 用来指定当前的请求/回复中的,是否使用缓存机制。 | Cache-Control: no-cache | 固定 | |
| --- | --- | |||
缓存
HTTP/2
更快,更稳定,更简单
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:阻止改善方向接收方发送大量数据的机制
HTTPS概述
-
HTTPS: Hypertext Transfer Protocol Secure
-
经过TSL/SSL加密
-
对称加密:加密和解密都是使用同一个密钥
-
非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥
小结
这种协议更新换代太快了,所以我们需要不断的学习,不过底层的知识发生不了大的变化。