HTTP Headers简明易懂的教程(3)

http://www.itjxue.com  2015-07-17 08:18  来源:未知  点击次数: 

HTTP Request 的结构

被称作“first line”的第一行包含三个部分:

  • “method” 表明这是何种类型的请求. 最常见的请求类型有 GET, POST 和 HEAD.
  • “path” 体现的是主机之后的路径. 例如,当你请求 “http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/”时 , path 就会是 “/tutorials/other/top-20-mysql-best-practices/”.
  • “protocol” 包含有 “HTTP” 和版本号, 现代浏览器都会使用1.1.

剩下的部分每行都是一个“Name:Value”对。它们包含了各式各样关于请求和你浏览器的信息。例如”User-Agent“就表明了你浏览器版本和你所用的操作系统。”Accept-Encoding“会告诉服务器你的浏览可以接受类似gzip的压缩输出。

这些headers大部分都是可选的。HTTP 请求甚至可以被精简成这样子:

GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
Host: net.tutsplus.com

并且你仍旧可以从服务器收到有效的响应。

请求类型

三种最常见的请求类型是:GET,POST 和 HEAD ,从html的编写过程中你可能已经熟悉了前两种。

GET:获取一个文档

大部分被传输到浏览器的html,images,js,css, … 都是通过GET方法发出请求的。它是获取数据的主要方法。

例如,要获取Nettuts+ 的文章,http request的第一行通常看起来是这样的:

GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1

一旦html加载完成,浏览器将会发送GET 请求去获取图片,就像下面这样:

GET /wp-content/themes/tuts_theme/images/header_bg_tall.png HTTP/1.1

表单也可以通过GET方法发送,下面是个例子:

<form action="foo.php" method="GET">
First Name: <input name="first_name" type="text" />
Last Name: <input name="last_name" type="text" />
<input name="action" type="submit" value="Submit" />
</form>

当这个表单被提交时,HTTP request 就会像这样:

GET /foo.php?first_name=John&last_name=Doe&action=Submit HTTP/1.1
...

你可以将表单输入通过附加进查询字符串的方式发送至服务器。

(责任编辑:IT教学网)

更多