OSI和TCP/IP
OSI:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
TCP/IP: 应用层、传输层、网络层、网络接口层。
各层常见协议
应用层:HTTP、SMTP、POP3/IMAP、FTP、Telnet、SSH、RTP、DNS
传输层:TCP、UDP
网络层:IP、ARP、ICMP、NAT、OSPF、RIP、BGP
从URL到网页展示的过程
1)输入URL
2)DNS解析域名得到IP地址
3)根据IP地址和端口号向服务器发起TCP请求连接
4)向服务器发起HTTP请求
5)服务器返回HTTP响应
6)浏览器从响应体中解码HTML代码,如果还有其他资源(图片等)的URL,继续发起对应的HTTP请求,直到网页加载完毕
7)浏览器不需要通信时,主动关闭TCP连接或等服务器发起关闭请求
HTTP状态码
1XX:正在处理请求
2XX:请求正常处理完毕
3XX:需要进行附加操作
4XX:客户端出错
5XX:服务器出错
HTTP和HTTPS区别
端口号:80和443
URL前缀:有没有 ' s '
安全性和资源消耗:后者更好也更大
HTTP1.0和1.1区别
连接方式:默认短连接和默认长连接
响应状态码:后者增加了大量新的码
缓存机制:后者缓存策略更多
带宽(部分请求):后者请求头中多了 ' range ',可以请求部分资源
Host头:请求头中多了 ' Host ',可以指定
HTTP1.1和2.0的区别
多路复用:2.0在一个连接上传输多个请求和响应;1.1每个请求和响应需要独立的连接
数据传输:2.0使用二进制帧;1.1使用文本格式的报文
头部压缩:2.0可以压缩Header;1.1只能压缩Body
服务器推送:2.0服务器可以进行推送;1.1需要客户端自己请求
GET和POST的区别
语义:GET常用于获取和查询;POST常用于创建和修改
幂等:GET多次重复执行不改变资源的状态;POST每次执行可能会产生不同的结果或影响资源的状态
格式:GET请求参数常放在URL中;POST常放在请求体中
缓存:GET可以缓存;POST不适合缓存
安全性:GET没有POST安全(参数放在URL中)
HTTP和WebSocket的区别
通信:HTTP是单向(只由客户端发起);Web是双向实时的
TCP和UDP的区别
连接:有连接; 无连接
可靠传输:可靠; 不可靠
状态:有状态; 无状态
传输效率:低; 高