http协议-HTTP协议是如何工作的?

http协议-HTTP协议是如何工作的?

偏爱自由 发布于 2017-06-06 字数 129 浏览 1075 回复 5

http协议从我们在地址栏里输入一个网址回车后到传回完整的HTML页面显示在浏览器上的整个过程是怎样的,请尽量给出详细的过程说明?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

想挽留 2017-09-28 5 楼

要想大概了解一下HTTP,看完这本经典的《HTTP The Definitive Guide》Part I的四章基本就差不多了,图文并茂啊亲~ http://vdisk.weibo.com/s/20Par

浮生未歇 2017-09-22 4 楼

推荐一篇文章:
http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/

泛泛之交 2017-09-04 3 楼

HTTP协议工作原理是我们现在要为大家介绍的内容。作为WWW的基础的HTTP协议,它的工作原理可以分为外部和内部。试想,一个庞大的网络结构,它的协议又怎么能简单呢。所以我们一定要在了解了HTTP协议的基本结构后来看它的工作流程。   

  既然我们明白了URL的构成,那么HTTP是怎么工作呢?我们接下来就要讨论这个问题。   

  一次HTTP操作称为一个事务,HTTP协议工作原理可分为四步:   

  首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。

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

  服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。   

  客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客http工作流程图户机与服务器断开连接。   

  如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。   

  许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP 80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。   

  这个过程就好像我们打电话订货一样,我们可以打电话给商家,告诉他我们需要什么规格的商品,然后商家再告诉我们什么商品有货,什么商品缺货。这些,我们是通过电话线用电话联系(HTTP是通过TCP/IP),当然我们也可以通过传真,只要商家那边也有传真。   

  以上简要介绍了HTTP协议的宏观运作方式,下面介绍一下HTTP协议工作原理的内部操作过程。

  在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。这就好像上面的例子,我们电话订货的全过程。   

  其实简单说就是任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。你的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包。TCP/IP决定了每个数据包的格式。如果事先不告诉你,你可能不会知道信息被分成用于传输和再重新组合起来的许多小块。   

  也就是说商家除了拥有商品之外,它也有一个职员在接听你的电话,当你打电话的时候,你的声音转换成各种复杂的数据,通过电话线传输到对方的电话机,对方的电话机又把各种复杂的数据转换成声音,使得对方商家的职员能够明白你的请求。这个过程你不需要明白声音是怎么转换成复杂的数据的。到此整个HTTP协议工作原理的过程就为大家介绍完了

归属感 2017-07-17 2 楼

HTTP是一个字符串协议,还是比较容易看懂的。如果有Firebug,就很容易看到浏览器和服务器间通过http协议的传输过程和传输内容。
http的处理过程分为两个部分:http请求和http回应。请求或者回应的内容是按照rn来分割的字符串列表。在unix下,rn就是回车换行字符,因此http请求实际发送的就是一些文本行,每个文本行内用字符“:”来分割,该字符前属性名,该字符后是该属性的取值。

http请求
这是你按下回车键后浏览器根据输入的URL和本机的情况生成的文本行,第一行是标明请求的动作类型(GET,POST,HEAD,...),以及请求的文件位置即(URL),HTTP/1.1是表示HTTP协议的版本号。
下面是一个例子:
GET /home/2012/0104/U6706P30DT20120104100505.jpg HTTP/1.1
Host: i0.sinaimg.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0
Accept: image/png,image/;q=0.8,/*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://www.sina.com.cn/
http回应
在服务器接收到你的请求后,经过处理,返回所要求URL的内容。其中的Header部分如下:
HTTP/1.0 200 OK
Date: Mon, 16 Jan 2012 13:20:01 GMT
Server: Apache
Last-Modified: Wed, 14 Jul 2010 08:43:01 GMT
Accept-Ranges: bytes
Content-Length: 7210
Cache-Control: max-age=31536000
Expires: Tue, 15 Jan 2013 13:20:01 GMT
Content-Type: image/jpeg
Age: 273
X-Cache: HIT from 236-60.D07071954.sina.com.cn
Connection: keep-alive

泛泛之交 2017-06-20 1 楼

这个协议是有rfc文档标准化的,你搜索下
rfc http1.1