HTTP
2018-10-24 本文已影响0人
曹小恒
- HTTP1.0 1.1 2.0的特点和区别
HTTP是一个应用层协议,建立到服务器指定端口的 TCP 连接
协议版本 | 特点 | 其他 |
---|---|---|
1.0 | 不能持续连接, head of line of blocking | |
1.1 | 持久连接,连续请求,身份认证,状态管理,断点续传 | 客户端不用等待上一次请求结果就能发出下一次请求(但是服务器端返回需要按照先后顺序),客户端并行,服务器端串行(部分解决 holb) |
2.0 | 多路复用,二进制分帧,首部压缩 | 完全解决 holb |
-
get 和 post
1)是否幂等
2)安全性
3)url 长度限制
4)是否可以缓存 -
HTTP 状态码
分类 | 描述 |
---|---|
1** | 收到,继续执行操作 |
2** | 成功 |
3** | 重定向 |
4** | 客户端错误 |
5** | 服务器错误 |
HTTPS 的加密传输方式
HTTP+TLS(原为 SSL):在 HTTP 上加上一层加密模块, 通信双方的信息都需要被加密进行传送,然后验证和解密,整个顺序如下:
对称密钥加密(双方的私钥是相同的):
- 客户端发起HTTPS 请求
- 服务端的配置
采用 HTTPS的服务器需要一套数字证书(自制或者申请),证书就是一套公钥和密钥, - 传送证书
就是公钥加上证书的颁发机构,过期时间等等 - 客户端解析
客户端的 TLS验证公钥的有效性,如果有异常,那么弹出一个警告框;如果没有问题,生成随机值,通过证书进行加密. - 传送加密信息
传送加密后的随机值,让服务器得到这个随机值,今后客户端和服务端可以通过这个随机值进行通信 - 服务端解析信息
服务端使用私钥解密,得到随机值(新的私钥),然后进行对称加密(除非知道私钥,不然不能获取内容) - 传输加密后的信息
- 客户端解密
在浏览器输入 url 之后发生了什么
- DNS 域名解析
- 浏览器缓存的 DNS 记录
- 操作系统中的 DNS
- 系统的 hosts 文件
- 本地 DNS 服务器请求(递归)
-本地 DNS 服务器请求根服务器,顶级,二级服务器(迭代) - 建立 TCP 连接
三次握手 - 发起 HTTP 请求
报文的组成: 报文首部(请求行,首部字段,通用字段,其他),空行,主体 - 接受响应结果(状态码和响应报文)
- 浏览器解析html
构建 dom 树 - 浏览器布局渲染