版本
http/2 基于google的SPDY协议,特点:
- 二级制协议,不再是纯文本;
- 可发起多个请求,废弃了1.1里的管道;
- 使用专用算法压缩头部,减少数据传输量;
- 允许服务器主动向客户端推送数据;
- 增强了安全性,事实上 要求加密通信。
http2也衍生出了gRPC等新协议。但普及率远不及1.1。
HTTP/3
QUIC---google 基于udp
特性
协议标准 跟 实现原理 有区分, 标准的指定,是更为了便于具体业务和技术发展。
- 互联网Internet, 子集万维网World Wide Web(基于http协议)
- 万维网之外,BT、Magnet点对点下载、FTP文件下载、SSH、及时通信等,都有各自的协议。
- 浏览器--就是个http请求方,User Agent用户代理。
- web服务器,优先级 Nginx>>Apache>>小众Jetty
- CDN Content Delivery NetWork,内容分发网络。 应用了http协议里面的缓存和代理技术,代替源站响应客户端的请求。
http对比telnet、ftp,更具有开放性,不明显偏向与一对一。
超文本有超链接,是网状结构,文本是线性结构。
说明:
webService && webServer
Web Service,它的名字与Web Server很像,但却是一个完全不同的东西。
WebServer分硬件和软件,硬件指服务器、云之类,软件如Nginx、Apache。
补充:webserver只能用http协议,因为是web。 webservice的接口就不固定了。
rpc就是把网络通信封装成了函数调用的形式,所以叫rpc。soap是web service的消息
域名说明
协议名schema + 主机名host + 路径path
SSL、TLS
(SSL) Secure Socket Layer ---> (TLS) Transport Layer Security
TCP/IP协议四层
- 链接层:负责在以太网、wifi等底层网络上发送原始数据包,工作在网卡层次,使用MAC地址标记网络上的设备, 也叫 MAC层。 ---交换机 二层
- 网络互连层:IP协议层,在 链接层 基础上,用ip地址替代mac地址,把许多局域网、广域网连接成一个网络,再在这个网络里,将IP地址 翻译成-> MAC地址。 ---路由 三层
- 传输层:TCP,这是个有状态、有序的协议。 UDP无状态、无序的协议,
- 应用层:Telnet、SSH、FTP、SMTP、HTTP。
mac 传输单位 帧frame,ip单位 包packet,tcp单位 段segment,http单位 消息message。本质无区别,都是数据包。
OSI 七层。
DNS
本地dns缓存--->本地hosts文件内--->顶级域名等
浏览器里面输入网址,发生了什么?
1判是不是ip。如果是域名,走域名解析成ip的流程,优先级 浏览器缓存>本币hosts>系统缓存>根域名>顶级dns服务器>二级dns服务器 >三级dns服务器。
通过DNS解析出来的ip,有可能是CDN的ip,如果CDN失败了,会直接穿透到源ip。
2通过各种路由器的转发,找到了最终的服务器,进行tcp3次握手,然后服务端收到请求后,进行分析,最终返回http保温,再通过tcp隧道返回给用户端,用户端收到后,发告诉服务端已经收到信息得信号ack。
如果dns解析失败,浏览器直接报错。
???
拿到报文信息后,通过渲染引擎,js引擎渲染出来?
这个引擎 属于什么角色?
TCP
tcp协议是有状态的,一开始是CLOSED,链接成功后是ESTABLISHED状态,断开连接时FIN-WAIT,最后又是CLOSED状态。