HTTP
- 定义:HyperText Transfer Protocol 超文本传输协议
HTTP请求方法
- Request Method:(常用)
1. Get
获取资源:没有Body
2. Post
增加或者修改资源:有Body
3. Put
修改资源:有Body
4. DELETE
删除资源:没有Body
5. OPTIONS
获取服务器支持的HTTP请求方法
用来检查服务器的性能
HTTP响应状态码
- Status Code (作用:对结果做出类型化描述):
1. 1XX:临时性消息
2. 2XX:成功
3. 3XX:重定向 (301:永久性迁移。302:暂时性迁移)
4. 4XX:客户端错误
5. 5XX:服务器错误
HTTP响应头
- Header(作用:HTTP消息的元数据(metadata))
- Host:服务器主机地址
- Content-Type/Content-Length:内容类型/内容的长度(字节)
- text/html:html文本,用于浏览器响应
- application/x-www-from-uelencoded:普通表单,encoded URL格式。(只能传文字)
- multipart/from-data:多部分形式,一般用于传输包含二进制内容的多项内容
- application/json:json形式,用于Web Api的响应或POST/PUT请求。
- image/jepg:单文件 ,用于Web Api的响应或POST/PUT请求。
- application/zip:单文件
- Chunked Transfer Encoding(分块传输)
- Transfer-Encoding:chunked
- 表示Body长度无法确定,Content-Length不能使用
- Location:重定向目标Url
- User-Agent:用户代理
- Range/Accpect-Range:指定Body的内容范围(分段加载)
- Cookie/Set-Cookie:发送Cookie/设置Coolie
- Authorization:授权信息
- Accpict:客户端能接受的数据类型。
- Accpict-Charset:客户端接受的字符集。
- Accpict-Encoding:客户端接受的压缩编码类型
- Content-Encoding:压缩类型
Cache
- Cache (缓存) Buffer(缓冲)
- Cache-Control:no-cache(不要缓存),no-store(没有缓存存储空间),max-age(失效日期),must-revalidate(验证缓存是否过期)
- Last-Modified:最后一次服务器修改
- if-Modified-Since
- Etag:文件对比
- if-Node-Match
- Cache-Control:private/public (服务器中间节点是否需要缓存)
Https
- Http over SSL
- SSL:Secure Socket Layer -> TLS Transport Layer Secure
- 定义:在HTTP之下增加一个安全层,用于保障http传输
- 本质:在客户端和服务器之间协商出一个对称密钥,每次发送消息之前将消息加密,收到之后解密,达到内容的加密传输。
Https连接
- 客户端请求建立TLS链接
- 服务器发回证书
- 客户端验证服务器证书
- 客户端信任服务器后,和服务器 协商出对称密钥
- 使用对称密钥开始通信