TCP和HTTP的关系
问题
TCP和HTTP的关系
我的回答
如果面试官问我TCP和HTTP的关系,我会这样回答:
"TCP和HTTP是网络通信中两个不同层次的协议,它们之间是一种承载关系。
TCP属于传输层协议,主要负责在两台计算机之间建立可靠的连接,确保数据包按顺序、完整地从源地址传输到目标地址。它处理的是数据如何传输的问题,比如拥塞控制、丢包重传、流量控制等。
HTTP则是应用层协议,它构建在TCP之上,专门用来规定客户端和服务器之间如何通信。HTTP关注的是通信的内容和格式,比如请求的方法(GET、POST)、状态码、头部字段等。
打个比方,如果把数据传输比作寄信,TCP就像是邮政系统,负责把信可靠地从一地送到另一地;而HTTP就像是信的格式规范,规定了信封怎么写、信纸怎么折。
在实际工作中,当浏览器发起HTTP请求时,会先通过TCP三次握手建立连接,然后在这个连接上传输HTTP格式的请求和响应数据,最后通过TCP四次挥手断开连接。
HTTP默认使用TCP的80端口,而HTTPS则使用443端口。虽然理论上HTTP可以基于其他传输协议实现,但实际上绝大多数HTTP通信都是基于TCP的。"