浏览器一般是图形界面的,因此我们并不了解在这华丽表面后面所发生的一切。当你点击一个连接时,浏览器首先找到站点的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 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,因此有时候这个过程是很慢的。