特性\传输层协议 | TCP | UDP |
是否是有状态的协议? | 是 | 不是 |
是否需要事先建立连接 | 需要 | 不需要 |
数据的形式 | 连续的字节流,有先后顺序 | 分散的数据包,顺序发乱序收 |
“四层”和“七层”到底是什么?“五层”“六层”哪去了?
问的也就是HTTP 协议利用 TCP/IP 协议栈传输数据的过程。HTTP协议利用TCP/IP协议栈传输数据分为发送和接受。

MAC地址的局限性和IP地址的连接性:因特网把各种网络连接起来,每个网络都使用不同的MAC地址,如果异构网络要互相通信就必须进行复杂的MAC地址转换工作,于是统一的IP地址把这个复杂问题解决了。IP地址本质上是终点地址,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。
DNS(Domain Name System)域名系统
域名解析过程
假设在浏览器输入www.baidu.com会发生的DNS解析过程
HTTPDNS方案:为移动端量身定做的的基于 HTTP协议+域名解析 的流量调度方案(面试装逼用)
国内运营商的本地DNS存在一些问题使得用户造成访问异常,为此有了HTTPDNS作为为移动端量身定做的基于 HTTP协议和域名解析 的流量调度方案:
以上问题都可以被HTTPDNS方案解决,HTTPDNS服务器可以自由掌控缓存更新速度,HTTPDNS放弃DNS协议而是使用HTTP协议使得用户只需一次http请求即可完成域名解析,HTTPDNS服务器由于直接获取了用户的源IP所以可以实现精准的流量调度。
UDP 包头格式
UDP包头:源端口号、目标端口号、长度、校验和、数据。

UDP 的三大使用场景
TCP 包头:源端口号、目标端口号、序号seq、确认序号ack、首部长度、状态位、窗口大小rwnd、校验和、紧急指针、选项



TCP基于以字节为单位的滑动窗口来实现可靠传输
发送窗口由第2第3部分组成,且会根据TCP确认报文段中的确认序号ack和窗口大小rwnd沿待发送字节流向后滑动
接收窗口就是可接受部分,当接收方处理不过来的时候接收窗口就会减小,这就是流量控制


vbnet 复制代码GET /10-1 HTTP/1.1 Host: www.chrono.com makefile 复制代码POST /10-2 HTTP/1.1 Host: www.chrono.com Content-Length: 17 POST DATA IS HERE 安全是指请求方法不会对服务器上的资源造成修改。
POST 用于修改服务器上的资源,有副作用、不安全不幂等,除非手动设置否则不会被浏览器主动缓存
100 ——客户端必须继续发出请求;101——客户端要求服务器转换 HTTP 协议版本。
200——OK 204--请求收到,但返回信息为空;206——服务器已经完成了部分用户的 GET 请求
300——请求资源在多处可得到。301——永久重定向,隐式重定向。302 临时重定向,显示重定向。304——请求的资源没有改变,可以使用缓存。
401——未授权;403——禁止访问。 404——找不到;409——对当前资源状态,请求不能完成
500 内部服务器错误,501 未实现, 502 网关错误,503 服务不可用,504 网关超时。
由于HTTP协议是无状态的协议,需要用某种机制来识具体的用户身份,用来跟踪用户的整个会话。常用的会话跟踪技术是cookie与session。
cookie的工作流程是

session的工作流程是

HTTP中请求应答过程(请求响应模型)
SSL/TLS:SSL 即Secure Sockets Layer(安全套接层),由网景公司1994年开发的安全协议,处于OSI五层(会话层),TLS·即Transport Layer Security(传输层安全),它是SSL的3.1版本。
**摘要算法**是指通过哈希函数将数据转换为固定长度的字符串,所以数据要配合摘要一起发送,为了防止数据和摘要一起被黑客修改,要保证机密性,使用密钥加密数据和摘要。
数字签名使用非对称加密,但是是使用私钥加密,公钥解密,考虑非对称加密效率低,我们仅加密摘要,拿到数字签名后对比原文验证即可知道对方身份是否可信。

IDC是基础,纯物理硬件服务器服务;云平台是IDC基础上进行升级,服务器功能上再附加更多的综合服务;而CDN是基于IDC或者云平台的一种组网模式,通过分布于各地的缓存服务器,达到最快访问资源的目的。
HTTP1.0默认使用的是短连接:浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
HTTP/1.1起,默认使用长连接:要使用长连接,客户端和服务器的HTTP首部的Connection都要设置为keep-alive,才能支持长连接。
HTTP长连接,指的是复用TCP连接。多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。