HTTP学习记录(二)

TCP/IP四层模型

单位

协议

功能

应用层

HTTP、FTP、DNS、SMTP

应用层协议为不同应用提供服务

传输层

报文段

TCP、UDP

为上层实体提供端到端主机的通信功能

网络层

数据报

IP、ARP、RARP

提供主机到主机的通信服务,处理网络上流动的数据报(网络传输的最小数据单位)

网络接口层

PPP

实际数据的传输

OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

DNS:域名系统,进行域名与IP地址转换的服务器,域名解析过程如下

  • 首先搜索浏览器的 DNS 缓存

  • 若未命中,则继续搜索操作系统的 DNS 缓存

  • 若仍未命中,则操作系统将域名发送至本地域名服务器,本地域名服务器采用递归查询自己的 DNS 缓存,查找成功则返回结果

  • 若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行迭代查询

  • 首先本地域名服务器向根域名服务器发起请求,根域名服务器返回顶级域名服务器的地址给本地服务器

  • 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址

  • 本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址

  • 本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来

  • 操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址进行缓存

  • 至此,浏览器就得到了域名对应的 IP 地址,并将 IP 地址进行缓存

(总结:浏览器缓存<=>操作系统缓存<=>本地域名服务器<=>根域名服务器<=>顶级域名服务器<=>权限域名服务器)

HTTP协议

特点

HTTP1.0

浏览器与服务器只保持短暂连接,每次请求都需要新建一个TCP连接,请求处理完成后断开TCP连接

HTTP1.1

默认支持长连接(Connection:keep-alive),即一次连接可以进行多次请求与响应;长连接使得多数请求以管线化的方式发送成为可能,即发送请求后,不用等待响应即可发送下一次请求;引入更多缓存控制策略;添加了其他请求方法(put delete options)

HTTP2.0

性能提升:多路复用(浏览器与服务器都可同时发送多个请求或响应);二进制分帧(二进制格式传输数据,1.x采用文本格式传输数据);首部压缩;服务器推送

WebSocket协议

特点

WebSocket

Websocket是基于HTTP的协议,在建立http连接后,请求首部Connection:upgrade、Upgrade:WebSocket,表明通信使用的是websocket协议,服务器返回101状态码,表示协议转换。它是一个全双工通信标准,它的优点是:(1)服务器推送;(2)减少通信量(首部缩小)

HTTP2.0与WebSocket

HTTP2.0与WebSocket的服务器推送的不同

HTTP2.0下,需要在客户端发起请求后,服务器才能在响应时向客户端发起推送,而WebSocket下,服务器可以主动向客户端发起推送

HTTP与HTTPS

名称

通信加密

特点

默认端口

HTTP

超文本传输协议

无,明文传输

效率高但不安全

80

HTTPS

安全的超文本传输协议(HTTP+SSL(TSL))

混合加密(对称加密+非对称加密)

安全但效率低

443

混合加密::服务器给客户端一个公钥,客户端用公钥对随机生成的密钥A进行加密,送达服务器后,服务器用私钥进行解密,获得客户端生成的密钥A,之后客户端与服务器间的通信都使用这个密钥A来进行加密解密

TCP

UDP

连接

面向连接(三握四挥)

无连接

可靠性

可靠

不可靠

传输

字节流

报文

传输效率

猜你喜欢

转载自blog.csdn.net/sxp19980829/article/details/129263509