Http协议
超文本传输协议,为无状态协议,基于请求和响应,有两个版本1.0,1.1,分别为短连接和长连接.
短连接(http1.0默认):连接网络-->请求-->响应-->断开连接....连接网络-->请求-->响应-->断开连接....
长连接(http1.1默认):连接网络-->请求-->响应-->请求-->响应-->请求-->响应....断开连接....
请求和响应的格式
请求:
a.请求行 (请求方式Method 资源路径 http版本号)-->(Get http://www.sohu.com/Default.aspx HTTP/1.1)
b.消息头 (说明服务器要使用的附加信息)-->(ContentType:application/json Content_Length:18 等等其他头信息)
c.请求实体 (需要传输到服务端的数据内容,以Post方式请求时才会有该项数据)
GET请求
GET / HTTP / 1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: www.google.cn
Connection: Keep-Alive
POST请求
POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive
name=Professional%20Ajax&publisher=Wiley
说明:
Content-Type说明了请求主体的内容是如何编码的.浏览器始终以application/x-www-form-urlencoded的格式编码来传送数据,这是针对简单URL编码的MIME类型.
Content-Length说明了请求主体的字节数.
最后请求主体.名称-值对的形式.
响应:
a.状态行 (协议 状态码 状态描述)
b.消息头
c.响应实体
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8
<html>
<head></head>
<body>
<!--body goes here-->
</body>
</html>
说明:
HTTP状态码200,找到资源,并且一切正常.
Date:生成响应的日期和时间.
Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8HTML源文体.
HTTP状态码:
100 继续
101 分组交换协
200 OK
201 被创建
202 被采纳
203 非授权信息
204 无内容
205 重置内容
206 部分内容
300 多选项
301 永久地传送
302 找到
303 参见其他
304 未改动
305 使用代理
307 暂时重定向
400 错误请求
401 未授权
402 要求付费
403 禁止
404 未找到
405 不允许的方法
406 不被采纳
407 要求代理授权
408 请求超时
409 冲突
410 过期的
411 要求的长度
412 前提不成立
413 请求实例太大
414 请求URI太大
415 不支持的媒体类型
416 无法满足的请求范围
417 失败的预期
500 内部服务器错误
501 未被使用
502 网关错误
503 不可用的服务
504 网关超时
505 HTTP版本未被支持
转自: http://www.cnblogs.com/cuixiaobo/archive/2012/06/30/2570926.html