HTTP通信机制解析

  • HTTP是一个应用层协议,HTTP无需操心网络通信的具体细节,它把联网的细节都交给了通用,可靠的因特网传输协议层TCP/IP

  • TCP:

    • TCP提供了

      • 无差错的数据传输

      • 按序传输,数据总是会按照发送的顺序到达

      • 未分段的数据流,可以在任意时刻以任意尺寸将数据发送出去

    • TCP/IP隐藏了各种网络和硬件的特点和弱点,使各种类型的计算机和网络都能够进行可靠通信

    • 只要进行了TCP连接,客户端和服务器之间的报文就不会丢失,不会被破坏,也不会在接收时出现错序

    • HTTP位于TCP的上层,HTTP使用TCP来传输其报文数据,与之类似,TCP则位于IP的上层 

  • HTTP网络协议栈

    • 层次从上至下依次为:HTTP应用层 —> TCP传输层 —> IP网络层 —> 网络特有的链路接口(数据链路层)—> 物理硬件层

  • 网络连接

    • 在HTTP客户端向服务器发送报文前,需要使用网际协议地址和端口号在客户端和服务器之间建立一条TCP/IP连接

    • 在TCP中,你需要知道服务器的IP地址,以及与服务器上运行的特定软件的TCP端口号,通过URL可以获得HTTP服务器的IP地址和端口号

    • 比如:http://207.200.83.29.80/index.html,这个URL就使用了机器的IP地址--207.200.83.29,端口号80

    • 又比如:http://www.baidu.com:80/index.html,这个URL没有使用数字形式的IP地址,而是文本形式的域名,或者称为主机名。

  • 输入URL后的通信过程

    1. 用户输入URL,比如:http://www.google.com

    2. 获取主机名www.google.com

    3. DNS域名解析

    4. 获取端口号80

    5. 连接到相应IP的端口80

    6. 客户端发送一条HTTP GET请求给服务器

    7. 客户端从服务器读取HTTP响应

    8. 关闭连接

猜你喜欢

转载自blog.csdn.net/weixin_42604536/article/details/85910321