http协议(No.29)

来源:互联网 发布:个人软件开发者 赚钱 编辑:程序博客网 时间:2024/06/11 23:45
 

http协议

1、http请求:

   完整的http请求包括:请求行、若干消息头、实体内容

请求行:常用的请求方式有:GETPOST

消息头:(常用的)

     

解析:

Accept: text/html,image/*    :客户机通过这个头,告诉服务器,它支持哪些数据类型

Accept-Charset: ISO-8859-1   :客户机通过这个头,告诉服务器,它支持的编码

Accept-Encoding: gzip,compress:客户机通过这个头,告诉服务器,支持哪种数据压缩格式

Accept-Language: en-us,zh-cn :客户机采用的那种语言

Host: www.it315.org:80:客户机通过这个头,告诉服务器,访问服务器的那台主机

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT:客户机通过这个头,告诉服务器,数据缓存的时间

Referer: http://www.it315.org/index.jsp:客户机通过这个头,告诉服务器,客户机从那个页面来的(防盗链);

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0):说明客户机操作系统信息,以及浏览器信息

Cookie:客户机通过这个头可以带点数据

Connection: close/Keep-Alive   :连接 多次连接就是keep-Alive,连接后关闭:close

Date: Tue, 11 Jul 2000 18:23:51 GMT:请求的时间

请求字段:

 

2、http响应

完整的http响应包括:状态行、若干响应头、实体内容

状态行:

响应状态码分五类:

302307请求服务器的一个资源,该资源让你去找别的资源

304请求服务器的一个资源,服务器告诉你从缓存中拿

响应头:

    

解析响应头:

 Location:服务器通过这个头告诉浏览器去访问哪个页面,这个头通常配合302状态码使用

Content-Encoding: 服务器通过这个头告诉浏览器,回送的数据采用的压缩格式

Content-Length:  服务器通过这个头告诉浏览器,回送的数据的大小

Content-Type: 服务器通过这个头告诉浏览器,回送数据的类型

Last-Modified: 服务器通过这个头告诉浏览器,资源的最后修改时间

Refresh:服务器通过这个头告诉浏览器,定时刷新网页

Content-Disposition: attachment; filename=aaa.zip:服务器通过这个头告诉浏览器,以下载方式打开数据

ETag: W/"7777-1242234904000":缓存相关的头,为每一个资源配一个唯一的编号

Expires: 0  

Cache-Control: no-cache  

Pragma: no-cache   这三个头组合使用,让浏览器不要缓存数据

响应字段:

 

 

 

举例:(通知浏览器以下载的方式打开数据)

  http请求:

//向服务器请求资源

   GET /20111013/demo.do HTTP/1.1

//告诉服务器它支持以下格式的文件

Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml,             image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/QVOD, application/QVOD, */*

//客户机采用zh-cn语言

Accept-Language: zh-cn

//说明客户机操作系统信息,以及浏览器信息

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)

//客户机告诉服务器支持 gzip, deflate这两种数据压缩格式

Accept-Encoding: gzip, deflate

//访问localhost:8080

Host: localhost:8080

//连接多次连接就是keep-Alive

Connection: Keep-Alive

 

http响应:

//向客户机响应资源

  HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

//服务器通过这个头告诉浏览器,以下载方式打开数据

Content-Disposition: attachment; filename=a.jpg

Transfer-Encoding: chunked

//响应的时间

Date: Thu, 13 Oct 2011 14:56:55 GMT

原创粉丝点击