TCP
TCP协议是传输层协议
三次握手
在TCP协议中,TCP协议通过三次握手建立一个可靠的连接
Step 1 (SYN):客户端想要与服务器建立连接,所以发送一个带SYN(同步序列号)的段,它通知服务器客户端可能开始通信以及它以什么序列号开始段
Step 2(SYN + ACK):服务器响应客户端请求并设置 SYN-ACK 信号位。ACK表示它收到的段的响应,SYN表示它可能以什么序列号开始段
Step 3 (ACK):客户端确认服务器响应,并且它们都建立了可靠的连接,通过该连接开始实际的数据传输
四次挥手
Step1:客户端发送FIN字段,并包含一个希望接受者看到的自己当前的序列号K,同时包含一个ACK表示确认对方最近依次发过来的数据
Step2:服务端将K加1作为ACK序列号,表示收到上一个包。这时上层的应用程序会被告知另一端发起关闭操作
Step3:服务端发送自己的FIN段,ACK=K+1,Seq=L
Step4:客户段确认,ACK=L+1
Socket
socket是传输层和应用层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单接口提供给应用层
使用以此来实现进程在网络中通信
。
HTTP
HTTP为网络层协议,是基于TCP/IP通信协议来传递数据的。
特点
- 简单快速:客户端向服务器发起请求时,只需传送请求方式和路径。请求方式有GET、POST等等。
- 灵活:HTTP允许传输任意类型的数据对象,以Content-Type标记传输类型
- 无连接:无连接含义是限制
每次连接处理一个请求
,服务器处理客户端请求,并收到客户端应答后,即断开连接。 - 无状态:无状态即协议对事务处理没有记忆功能,缺少状态意味着如果
后续处理需要前面的信息,则它必须重传
,这样可能导致每次连接传送的数据量增大。如果服务器不需要先前信息时它应答的很快。
HTTP请求/响应步骤
1、客户端连接服务器
HTTP客户端通常为浏览器,与Web服务器HTTP端口建立TCP套接字连接
2、发送HTTP请求
通过TCP套字节,客户端向服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据这四部分组成
3、服务器接收请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源写入TCP套接字,由客户端读取
。一个响应由状态行、响应头部、空行和响应数据4部分组成。
4、释放TCP连接
5、客户端浏览器解析HTML内容
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。