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信息
实体
响应正文
?
?
?
?
?
?
?
?
?