HTTP协议基础HTTP由两部分组成:请求和响应
当你在Web浏览器中输入一个URL时,浏览器将根据你的要求创建并发送请求,该请求包含所输入的URL以及一些与浏览器本身相关的信息
当服务器收到这个请求时将返回一个响应,该响应包括与该请求相关的信息以及位于指定URL(如果有的话)的数据
直到浏览器解析该响应并显示出网页(或其他资源)为止
HTTP请求HTTP请求的格式如下所示:[]GET/runwit/helloworldHTTP/1
1Host:User-Agent:Mozilla/5
0(Windows;U;WindowsNT5
1;en-US;rv:1
6)Gecko/20050225Firefox/1
1Connection:Keep-Alive请求行的第一部分说明了该请求是GET请求
该行的第二部分是一个斜杠(/),用来说明请求的是该域名的根目录
该行的最后一部分说明使用的是HTTP1
1版本(另一个可选项是1
那么请求发到哪里去呢
这就是第二行的内容
第2行是请求的第一个首部,HOST
首部HOST将指出请求的目的地
结合HOST和上一行中的斜杠(/),可以通知服务器请求的是/(HTTP1
1才需要使用首部HOST,而原来的1
0版本则不需要使用)
第三行中包含的是首部User-Agent,服务器端和客户端脚本都能够访问它,它是浏览器类型检测逻辑的重要基础
该信息由你使用的浏览器来定义(在本例中是Firefox1
1),并且在每个请求中将自动发送
最后一行是首部Connection,通常将浏览器操作设置为Keep-Alive(当然也可以设置为其他值,但这已经超出了本书讨论的范围)
注意,在最后一个首部之后有一个空行
即使不存在请求主体,这个空行也是必需的
如果要获取一个诸如s的m域内的页面,那么该请求可能类似于:GET/books/HTTP/1