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表示连接彻底释放。
网友评论