当前位置: 代码迷 >> Web前端 >> HTTP协议请求-响应
  详细解决方案

HTTP协议请求-响应

热度:666   发布时间:2012-11-09 10:18:48.0
HTTP协议请求---响应

HTTP请求如下

?

请求方法 ? ? ? ? ? ? ? ?URI ? ? ? ? ? ? ? ? ? ?协议/版本
POST  /order/confirm_order.htm   HTTP/1.1
请求头
Host: buy.tmall.com
Connection: keep-alive
Content-Length: 955
Cache-Control: max-age=0
Origin: http://detail.tmall.com
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://detail.tmall.com/venus/spu_detail.htm
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: t=65bf636b66ade09bfeae5693f4180002 login=true;
实体
_tb_token_=e58efe8b331e6&item_id=13957380330

?

请求方法 ? 有 GET POST HEAD OPTIONS PUT DELETE TRACE ?常见的是GET 和 POST

URI ? 通常会被解释为相对于服务器更目录的相对路径

协议/版本 ? 协议版本指明了当前请求使用的HTTP协议版本

?

请求头

HOST ? ? ? ? 初始URL中主机的IP和端口

Connection 表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。

Content-Length 表示请求消息正文的长度,get方法没有

Cookie Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器

?

实体

当方法是get的时候,没有内容。当是post的时候会有内容以&符号分割

?

HTTP响应

?

?

     协议    状态码  描述
HTTP/1.1 200     OK
响应头
Date: Sun, 26 Feb 2012 15:17:52 GMT
Server: Apache
Set-Cookie: uc1=cookie14=UoLfcJdR2Yl0ng%3D%3D; Domain=.taobao.com; Path=/
Set-Cookie: v=0; Domain=.taobao.com; Path=/
Content-Language: zh-CN
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 118
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=GBK
实体
<html></html>

状态码

?

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

常见状态代码、状态描述、说明:

200 OK ? ? ?//客户端请求成功

400 Bad Request ?//客户端请求有语法错误,不能被服务器所理解

401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用?

403 Forbidden ?//服务器收到请求,但是拒绝提供服务

404 Not Found ?//请求资源不存在,eg:输入了错误的URL

500 Internal Server Error //服务器发生不可预期的错误

503 Server Unavailable ?//服务器当前不能处理客户端的请求,一段时间后可能恢复正常

响应头

如果要不缓存在响应头上加上Cache-Control: no-cache, must-revalidate,要不GET方式被认为是幂等的

?Set-Cookie设置cookie信息

实体

响应正文

?

?

?

?

?

?

?

?

?

  相关解决方案