https http tcp

2019-01-04  本文已影响0人  SailingBytes

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

https和http都属于application layer,基于TCP(以及UDP)协议,但是又完全不一样(数据应用层)。

1、http是明码传输,https是SSL加密的安全性传输。

2、TCP中使用的port不一样,https是443,http用的是80。

3、https协议需要到CA申请证书。

4、http连接简单,是无状态的,https是ssl加密传输、身份认证的网络协议,https相对http来说安全。

SSL 是 “Secure Sockets Layer” 的缩写。它是在上世纪 90 年代中期,由网景公司设计的。因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。

到了 1999 年,SSL 因为应用广泛,已经成为互联网上的事实标准。IETF 就在那年把 SSL 标准化。标准化之后的名称改为 TLS(是 “Transport Layer Security” 的缩写),中文叫做“传输层安全协议”。

很多相关的文章都把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。

TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议(数据传输层)。

TCP报文中包含:数据包、源IP地址、目标IP地址、源端口、目标端口。

互联网协议简称为TCP/IP协议。TCP、IP是互联网协议中重要的部分。

1、IP 协议只是一个地址协议,但却不保证数据包的完整。

2、TCP协议建立在IP协议之上。TCP负责在两台计算机之间建立可靠连接,保证数据包按顺序送达。

3、TCP协议会通过握手建立连接,然后,对每个IP编号,确保包按顺序送到,若包丢掉了,就自动重发。

4、许多更高级的协议都是建立在TCP协议基础上的,如http协议。

TCP的三次握手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

完成了三次握手,客户端和服务器端就可以开始传送数据。

TCP的四次挥手

第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。

第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。

第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。

第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。

上一篇 下一篇

猜你喜欢

热点阅读