Http实用指南 | 青训营笔记

106 阅读3分钟

http

  • 超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 简单可扩展
  • 无状态

http协议发展

最常见的和标准的 - http1.1 - 有了缓存能力 更优异的和更好的 - http2.0 -

http1.1协议分析

由三个部分组成:

  • 起始行(start line)
  • 请求头(HTTP headers)
  • 内容(body)

Method

安全与幂等

安全(safe):不会修改服务器的数据的方法,如GET 幂等(Idempotent):同样的请求执行多次产生的效果是一样的,服务器的状态也是一样的,所有Method都是幂等的

状态码

一些常见的状态码

RESTful API

一种风格或叫约定。使用http method来对服务端发起一系列请求。目的在于明确请求的语义。 下面是一些常见的用法:

常用的请求头

常用的响应头

缓存

  • 强缓存:如果本地有缓存,直接使用
  • 协商缓存:需要协商查看本地缓存是否过期或是否为最新的

两种缓存方式的相关字段:

缓存使用和请求的流程

Cookie

Cookie是什么

cookie是服务端生成的一段数据,发送给请求方,该请求方后续访问需要带上这段数据。浏览器作为请求放则会保存这段数据。

Cookie的作用

  • 识别请求方的身份
  • 记录历史
识别身份

A用户访问网站,登录后获得了cookie,之后A用户再打开一个页面访问网站就不需要登录了。因为根据Cookie已经可以识别A用户登录了。当Cookie过期后,需要重新登录。

记录历史

A用户访问网站,填写问卷调查信息,提交表单,服务器返回成功和一个cookie,记录当前用户已经填写过。A用户再打开想填写时,因为已经带上cookie,所以服务端知道,重定向请求到感谢填写问卷调查页面。

cookie的所有设置都是以key=value的形式存放

http2

帧(frame)

http2通信的最小单位,每个帧都包含帧头,至少也会标示出当前帧所属的数据流。

传输时与http1.1不同,不再是文本流的传输,而是二进制数据流的传输。

消息

逻辑请求或响应消息对应的完整的一系列帧,称之为消息

数据流

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

连接复用

http2的连接都是永久的,可以复用。

控制流

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

服务器推送

https

加密的http协议,经过TSL/SSL加密。

对称加密

加解密都是用同一密钥。 无法防止中间人攻击。

非对称加密

加解密使用不同的密钥:公钥(public key)和私钥(private key)。 可以防止中间人攻击。

https请求验证流程