一篇文章让你掌握计算网络的HTTP协议!!

浏览器的服务原理

输入一个url地址,浏览器是如何找到对应的页面的呢?

当我们输入一个url地址,输入一个地址进行提交的时候。第一步就是根据域名寻找目标服务器对应的ip地址,这个过程依靠的是一个叫做dns服务器的东西进行解析。然后我们通过dns服务器查询出域名所映射的ip地址。浏览器就会根据我们查询到的ip地址跟我们的web服务器进行通信。而通信的协议就是http协议。
在这里插入图片描述

那浏览器中的界面是如何出现的?

首先web服务器收到请求,自然会到后端来执行,然后我们的执行结果以响应报文的形式回传到浏览器,然后由浏览器进行渲染响应报文。渲染引擎是根据html文件描述对应相对应的数据模型,调用浏览器的各个零部件,从而把网页资源的一些源代码展示为图像结果。

http协议

超文本传输协议(HTTP)是一种属于应用层的面向对象的通信协议,它允许将超文本标记语言(HTML)文档从web服务器传送到客户端的浏览器。简单来说,http就是用来在网页传输html的一种规则。

web

web是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。,是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面。

TCP/IP协议族

HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集。

TCP/IP协议其实是一系列与互联网相关联的协议集合起来的总称。

分层管理是TCP/IP协议的重要特征。

TCP/IP协议族分层

TCP/IP协议族是由一个四层协议组成的系统,这四层分别为:应用层、传输层、网络层、数据链路层。
在这里插入图片描述

应用层

应用层一般是我们编写的应用程序,决定了向用户提供的应用服务。应用层可以通过系统调用与传输层进行通信。如:ftp、dns、http等。

传输层

传输层通过系统调用向应用层提供处于网络连接中的两台计算机之间的数据传输功能。

在传输层有两个性质不同的协议:TCP(面向连接,比较可靠,但是由于需要先建立连接,所以效率比较低)和UDP(无连接,所以效率较高,但是可靠性较低)

网络层

网络层是用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传输给对方。

链路层

链路层用来处理连接网络的硬件部分,包括控制操作系统、硬件设备驱动、NIC(网络适配器)以及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。

数据包的封装过程

那么上层协议数据到底如何是转变为下层协议数据的?

应用程序的数据在发布到我们的数据网络之前,会沿着协议站从上往下进行传递。每层协议都将在我们的上层协议的基础之上加上自己的头部信息,链路层还会加上尾部信息,以此来实现所有层的一个数据封装。在这里插入图片描述

HTTP数据传输过程

发送端发送数据时,数据会从上层传输到下层,且每经过一层都会被打上该层的头部信息。而接收端接收数据时,数据会从下层传输到上层,传输前会把下层的头部信息删除

传输层——TCP三次握手

使用TCP协议进行通信的双方必须先建立连接,然后才能开始传输数据。未来确保连接双方可靠性,在双方建立连接时,TCP协议采用了三次握手策略。
在这里插入图片描述

第一次握手

客户端发送带有SYN标志的连接请求报文段&#

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 18:06:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 18:06:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 18:06:03       45 阅读
  4. Python语言-面向对象

    2024-07-16 18:06:03       55 阅读

热门阅读

  1. CFU-Net

    CFU-Net

    2024-07-16 18:06:03      19 阅读
  2. Linux环境下安装Nodejs

    2024-07-16 18:06:03       17 阅读
  3. Electron 通知

    2024-07-16 18:06:03       18 阅读
  4. Linux的初级简单命令

    2024-07-16 18:06:03       18 阅读
  5. 根据PID查看进程执行路径

    2024-07-16 18:06:03       16 阅读
  6. Airtest的控制手机滑动位置偏差修正方法总结

    2024-07-16 18:06:03       17 阅读
  7. Cuda环境及Pytorch环境安装

    2024-07-16 18:06:03       19 阅读
  8. Window -- redis 服务注册、Mysql 服务注册

    2024-07-16 18:06:03       17 阅读
  9. python安全脚本开发简单思路

    2024-07-16 18:06:03       18 阅读