http请求头和响应头的含义

来源:互联网 发布:远程连接linux服务器 编辑:程序博客网 时间:2024/05/02 01:51

参考文献:HTTP/1.1 Cache-Control的理解 


http请求头:

Accept: text/html,image/*    浏览器通过这个头,告诉服务器它所支持的数据类型
Accept-Charset: 浏览器通过这个头,告诉服务器它采用的字符集
Accept-Encoding:浏览器通过这个头,告诉服务器,它所支持的压缩格式
Accept-Language:浏览器通过这个头,告诉服务器,它所采用的语言
Host:浏览器通过这个头,告诉服务器,我想访问服务器哪台主机
If-Modified-Since:浏览器通过这个头,告诉服务器,它缓存数据时间是多少。
Referer:浏览器通过这个头,告诉服务器,我是从哪个网页点过来的(防盗链)
User-Agent: 浏览器通过这个头,告诉服务器,当前浏览器操作系统的信息,以及浏览器的版本号
Connection:
Date:

http响应头:
Location:这个头通常配合302状态码使用,它用于告诉浏览器你去找谁。
Server:告诉浏览器,服务器的类型
Content-Encoding: 服务器通过这个头,告诉浏览器,回送的数据采用的压缩格式。
Content-Length: 80
Content-Language: zh-cn
Content-Type:这个头用于告诉浏览器,回送数据的类型
Last-Modified:这个头用于告诉浏览器,数据的最后修改时间
Refresh: :这个头用于控制浏览器定时刷新
Content-Disposition: 用于通知浏览器,以下载方式打开回送的数据
Transfer-Encoding: 用于通知浏览器,数据是以分块形式回送的
ETag: 缓存相头的头
Expires: 用于说明网页的失效时间,如果该值为一个<0的值,则服务器是通知浏览器不要缓存
Cache-Control: no-cache  通知浏览器不要缓存

Pragma: no-cache  



HTTP头分两种:

一、响应头

1、状态行

格式:版本  状态代码  说明  如:HTTP/1.1 200 OK

状态码:2xx 成功(200 OK、201 Created、202 Accepted、204 No Content)

3xx 重定向(300 Multiple Choice、301 Moved Permanently、302 Found、303 See Other、304 Not Modified、305 Use Proxy)

4xx 请求错误,这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理(400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、405 Method Not Allowed、406 Not Acceptable、408 Request Timeout等)

5xx 服务器错误(500 Internal Server Error、501 Not Implemented、502 Bad Gateway、503 Service Unavailable等)

2、expire  期限,即有效期

格式:Expires:GMT格式的时间   例如:Expires:Tue, 11 Oct 2011 04:42:44 GMT

3、Content-Type  文件类型

格式:Content-Type:类型( text/html;charset=gb2312、image/png、image/jpg、application/javascript等)

4、Content-Length 文件大小

格式:Content-Length:大小

5、Cache-Control  缓存控制

格式:Cache-Control:方式(private、public、no-cache、no-store、max-age、min-fresh、max-stale等)

Public  指示响应可被任何缓存区缓存。

Private  指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的

部分响应消息,此响应消息对于其他用户的请求无效。

no-cache  指示请求或响应消息不能缓存(HTTP/1.0用Pragma的no-cache替换)

根据什么能被缓存

no-store  用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。

根据缓存超时

max-age  指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

min-fresh  指示客户机可以接收响应时间小于当前时间加上指定时间的响应。

max-stale  指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以

接收超出超时期指定值之内的响应消息。

6、Content-Encoding  内容格式  

格式:Content-Encoding:格式(gzip等)

7、date  时间

格式:Date:GMT格式时间,比如:Date: Tue, 11 Oct 2011 04:42:44 GMT

8、Server  服务器

格式:Server:服务器类型(BWS/1.0、apache、iis)  比如:Server:BWS/1.0

9、Connection 连接

格式:Connection:方式(Keep-Alive等)

10、Set-cookie  设置cookie

格式:Set-cookie:key=value;key2=value;

二、请求头

1、请求行

格式:请求方式(get、post)  某某文件  协议(HTTP/1.1)  比如:GET / HTTP/1.1

2、accept 接受的文件类型

格式:Acceptimage/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*

3、Accept-Language  接收语言

格式:Accept-Languagezh-cn

4、Cookie

比如:CookieBAIDUID=80489F991FE27D7AA10C41259CF12346:FG=1

5、User-Agent  客户端类型

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CIBA)

6、Accept-Encoding: gzip, deflate

7、Connection: Keep-Alive

 

PHP中设置http响应头

使用内置header(“字符串”)来设置

例如:header("Content-Type:text/html;charset=utf-8");

header("Expires:GMT时间");

另外需要注意的是,header()函数不会严格检测字符串的内容,也就是说,不管字符串是否合法,除了header("Location:index.php"),php都会将字符串添加到响应头内,header("dada:my name is dada"),设置这个不合法的HTTP头字段,有效。

 

在HTML文档中使用meta标签设置http响应头

如:<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

<meta http-equiv="Cache-control" content="no-cache"/> 等同于<meta http-equiv="Progma" content="no-cache" />,后者属于旧版本

<meta http-equiv="Set-Cookie" content="uid=123;name=dada"/>

<meta http-equiv="refresh" content="2;URL=http://www.baidu.com"/>重指向某站点

<meta http-equiv="expires" content="GMT格式时间"/>

0 0
原创粉丝点击