- HTTP请求
HTTP请求信息由3部分组成:请求方法URI协议/版本、请求头、请求正文。在请求正文之前,有换行符,表示请求头的结束,正文的开始。
POST /samplp.jsp HTTP/1.1 ------------------------------------请求方法URI协议/版本
Host: www.baidu.com ---------------------------------------------请求头信息开始
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive ------------------------------------------请求头信息结束
name=Professional%20Ajax&publisher=Wiley ------------------------请求正文
1.1 请求方法URI协议/版本
上面样例中,"POST"是请求方法,"sample.jsp"是URI,"HTTP/1.1"是协议和版本信息。HTTP的请求方法有7种,包括:GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE。
1)GET
获取URI指定的Web对象的内容,它是HTTP默认的请求方法,可以用来提交表单数据。GET方法提交的数据只经过简单的编码并且将作为URL的一部分发送给Web服务器,因此GET方法提交的表单数据存在安全隐患,而且提交的数据量受URL限制(实际上是浏览器对URL长度的限制)
2)POST
用于向服务器主机上的某个进程发送数据。通过POST方法提交数据时,数据不再作为URL请求的一部分而是作为标准数据传送给Web服务器,克服了GET方法中信息无法保密和数据量小的缺点,但并不是说POST的数据量就没有限制,数据量会收到服务器设置和内存的影响。POST方法提交的数据可以从标准输入流中获取。
3)HEAD
仅从服务器获取头部信息而不是对象本身。这种方法可以用来获取请求中隐含的元信息,而无需传输实体本身。这个方法经常用来测试超链接的有效性,可用性和最近修改。
4)PUT
用于将HTTP附带的内容保存到服务器上URI所指定的位置。可用于上传文件。
5)DELETE
用于删除指定的资源。
6)OPTIONS
返回服务器支持的HTTP方法,可用于检测服务器的性能,例如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。
7)CONNECT
把请求连接转换到透明的TCP/IP通道。
1.2 请求头
请求头包含许多和客户端环境和请求正文有关的信息,以上面的请求头为例,我们可以知道客户端使用的代理,HTTP请求实体的长度为40,以及保持连接等方面的信息。
- HTTP响应(应答)
HTTP应答与HTTP请求相似,也由3个部分构成,分别是协议状态/版本(代码描述)、响应头、响应正文。响应头是包含了服务器的一些信息,而响应正文则是服务器返回的HTML页面。协议状态码能反映Web服务器处理HTTP请求的状态,它一般由3位数字组成,其中首位数字定义了应答码的类型:
1XX——信息类,表示收到Web浏览器请求,正在进一步处理。
2XX——成功类,表示用户请求被正确接收、理解、处理。
3XX——重定向类,表示请求没有成功,客户必须采取进一步动作。
4XX——客户端错误类,表示客户端提交的请求有误。
5XX——服务器错误类,表示服务器不能完成对请求的处理。
具体例子可以参见我从百度百科上截取的图片: