应用层协议
HTTP
http/0.9
支持命令: GET
服务器响应格式:只能是 HTML
服务器发送完毕,关闭 TCP连接
http/1.0
支持命令:GET、POST、HEAD
服务器响应格式:增加了很多,content-type 指定响应格式
请求、响应数据:增加 信息头
可以使用 Connection: keep-alive 复用连接,由客户端或者服务器 主动关闭连接
http/1.1
引入持久连接:TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive
客户端或者服务器可以主动关闭连接或者 客户端 发送 Connection: close 明确服务端关闭连接
多个请求复用同一个连接,请求按照顺序执行
支持命令:增加了 PUT、PATCH、HEAD、 OPTIONS、DELETE
请求头增加 Host 指定 服务器域名
http/2.0
二进制协议
多工通信
RESTful API 和 Open API
问题
用ip直接访问 和用域名访问 有什么不一样
ip :不需要走DNS域名解析、负载均衡、网关等等 这些 中间设备,直接到达目标服务
域名:需要 进行 DNS域名解析等一系列的规则之后,到达某一台服务,不固定是哪一台
用域名访问如果出现访问不通,说明什么问题?
1. 目标服务不可用
2. 域名解析失败
3. 负载均衡设备、网关等拦截
浏览器输入url发生了什么
1. DNS域名解析
2. TCP 建立连接
3. HTTP 发送请求
4. Server处理并返回
5. 浏览器渲染
6. HTTP连接断开