HTTP请求过程简介

浏览器一般是图形界面的,因此我们并不了解在这华丽表面后面所发生的一切。当你点击一个连接时,浏览器首先找到站点的IP地址,这是通过DNS来实现的。在找到IP地址后可以建立TCP连接了,连接建立后我们就可以发送请求了,但这个请求是什么样子呢?我们现在假设点击了一个从WWW.WEBMONKEY.COM/HTML/96/47/INDEX2A.HTML点击了WWW.GRIPY.ORG/MATTMARG/,这时浏览器会发出下面的请求:

Get /mattmarg/*目录在这里*/ / HTTP/1.0 User-Agent: Mozilla/2.0 (Macintosh; I; PPC) Accept: text/html; */* Cookie: name = value Referer: http://www.webmonkey.com/html/96/47/index2a.html /*源站点 或者说是trackback的源头*/ Host: www.grippy.org /*目标站点*/

第一行称为请求,它告诉服务器从MATTMARG取得文件,这里的目录一般是要加/的。下面几行通知服务器你所使用的浏览器是什么类型,你所接收的数据是什么类型。如果你以前访问过这个站点,站点可能向你发送了cookie,如果你已经有了一个这样的cookie,浏览器会将这个cookie返回给服务器。referer行通知服务器用户从哪一页到达此页的。

下面服务器就要返回文件了,每次服务器返回文件时,都要返回一个http/1.0响应,同时带有状态码,在此之后是一些描述内部的头信息。下面就是一个响应:

HTTP/1.0 200 Found

Date: Mon, 10 Feb 1997 23:48:22 GMT

Server: Apache/1.1.1 HotWired/1.0

Content-type: text/html

Last-Modified: Tues, 11 Feb 1997 22:45:55 GMT

不贩数据可能返回不同的content-type,因此不同的内容需要不同的content-type,因此有时候这个过程是很慢的。