欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

HTTP的工作原理

程序员文章站 2024-02-07 13:36:22
客户机与服务器建立连接后,发送一个请求给服务器,请求格式为:统一资源标识符、协议版本号。服务器收到请求的信息(包括请求行,请求头,请求体)。服务器接收到请求后,给予相应的响应信息,格式为一个状态行(包括响应行,响应头,响应体)。在internet上,http通讯通常发生在TCP/IP连接之上。缺省端 ......

客户机与服务器建立连接后,发送一个请求给服务器,请求格式为:统一资源标识符、协议版本号。
服务器收到请求的信息(包括请求行,请求头,请求体)。
服务器接收到请求后,给予相应的响应信息,格式为一个状态行(包括响应行,响应头,响应体)。

在internet上,http通讯通常发生在tcp/ip连接之上。缺省端口是tcp的80端口。
基于http协议的客户/服务器模式的信息交换过程,分为四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。
服务器可能同时接受多个请求,这时就会产生多个sessoin,每个session分别处理各自的请求。

http的工作过程

HTTP的工作原理
一次http操作称为一个事务,其工作整个过程如下:
1)地址解析
  如用客户端浏览器请求这个页面:http://localhost.com:8080/index.html
  从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:
  协议名:http
  主机名:localhost.com
  端口:8080
  对象路径:/index.html
在这一步,需要域名系统dns解析域名localhost.com,得主机的ip地址。

2)封装http请求数据包
  把以上部分结合本机自己的信息,封装成一个http请求数据包

3)封装成tcp包,建立tcp连接(tcp的三次握手)
       在http工作开始之前,客户机(web浏览器)首先要通过网络与服务器建立连接,该连接是通过tcp来完成的,该协议与ip协议共同构建internet,即著名的tcp/ip协议族,因此internet又被称作是tcp/ip网络。http是比tcp更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立tcp连接,一般tcp连接的端口号是80。这里是8080端口

4)客户机发送请求命令
       建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(url)、协议版本号,后边是mime信息包括请求修饰符、客户机信息和可内容。

5)服务器响应
  服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是mime信息包括服务器信息、实体信息和可能的内容。
  实体消息是服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以content-type应答头信息所描述的格式发送用户所请求的实际数据

6)服务器关闭tcp连接(tcp的四次握手)
  一般情况下,一旦web服务器向浏览器发送了请求数据,它就要关闭tcp连接,然后如果浏览器或者服务器在其头信息加入了这行代码
  connection:keep-alive
  tcp连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

服务器将响应信息传给客户端,响应体中的内容可能是一个html页面,也可能是一张图片,通过输入流将其读出,并写回到显示器上。