Http协议——Header说明

下图是我用IE的开发人员工具截取的一个Http Request请求的Header.

下图是我用IE的开发人员工具截取的一个Http Response的Header.

header常用指令

header分为三部分:第一部分为HTTP协议的版本(HTTP-Version);
第二部分为状态代码(Status);
第三部分为原因短语(Reason-Phrase)。

//发送一个200 正常响应
header(‘HTTP/1.1 200 OK‘);   
  
// set 404 header:   页面没找到
header(‘HTTP/1.1 404 Not Found‘);   
  
//页面被永久删除,可以告诉搜索引擎更新它们的urls
// set Moved Permanently header (good for redrictions)   
// use with location header   
header(‘HTTP/1.1 301 Moved Permanently‘);

// 访问受限
header(‘HTTP/1.1 403 Forbidden‘);

// 服务器错误
header(‘HTTP/1.1 500 Internal Server Error‘);
  
// 重定向到一个新的位置
// redirect to a new location:   
header(‘Location: http://www.example.org/‘);   
  
延迟一段时间后重定向
// redrict with delay:   
header(‘Refresh: 10; url=http://www.example.org/‘);   
print ‘You will be redirected in 10 seconds‘;   
  
// 覆盖 X-Powered-By value
// override X-Powered-By: PHP:   
header(‘X-Powered-By: PHP/4.4.0‘);   
header(‘X-Powered-By: Brain/0.6b‘);   
  
// 内容语言 (en = English)
// content language (en = English)   
header(‘Content-language: en‘);   
  
//最后修改时间(在缓存的时候可以用到)
// last modified (good for caching)   
$time = time() - 60; // or filemtime($fn), etc   
header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s‘, $time).‘ GMT‘);   
  
// 告诉浏览器要获取的内容还没有更新
// header for telling the browser that the content   
// did not get changed   
header(‘HTTP/1.1 304 Not Modified‘);   
  
// 设置内容的长度 (缓存的时候可以用到):
// set content length (good for caching):   
header(‘Content-Length: 1234‘);   
  
// 用来下载文件:
// Headers for an download:   
header(‘Content-Type: application/octet-stream‘);   
header(‘Content-Disposition: attachment; filename="example.zip"‘);   
header(‘Content-Transfer-Encoding: binary‘);   
  
// 禁止缓存当前文档:
// load the file to send:readfile(‘example.zip‘);   
// Disable caching of the current document:   
header(‘Cache-Control: no-cache, no-store, max-age=0, must-revalidate‘);   
header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT‘);

// 设置内容类型:
// Date in the pastheader(‘Pragma: no-cache‘);   
// set content type:   
header(‘Content-Type: text/html; charset=iso-8859-1‘);   
header(‘Content-Type: text/html; charset=utf-8‘);

header(‘Content-Type: text/plain‘);      // plain text file   
header(‘Content-Type: image/jpeg‘);    // JPG picture   
header(‘Content-Type: application/zip‘);    // ZIP file   
header(‘Content-Type: application/pdf‘);    // PDF file   
header(‘Content-Type: audio/mpeg‘);    // Audio MPEG (MP3,...) file   
header(‘Content-Type: application/x-shockwave-flash‘);    // Flash animation
  
// 显示登录对话框,可以用来进行HTTP认证
// show sign in box   
header(‘HTTP/1.1 401 Unauthorized‘);   
header(‘WWW-Authenticate: Basic realm="Top Secret"‘);   
print ‘Text that will be displayed if the user hits cancel or ‘;

print ‘enters wrong login data‘;?>

// 发送一个200 正常响应
header("HTTP/1.1 200 OK");

// 发送一个404 找不到资源响应
header(‘HTTP/1.1 404 Not Found‘);

// 发送一个301 永久重定向
header(‘HTTP/1.1 301 Moved Permanently‘);

// 发送一个503 网站暂时不能访问
header(‘HTTP/1.1 503 Service Temporarily Unavailable‘);

// 网页重定向
header(‘Location: http://www.php-chongqing.com/‘);

// 设置网页3秒后重定向
header(‘Refresh: 3; url=http://www.php-chongqing.com/‘);
echo ‘网页将在3秒后跳转到http://www.php-chongqing.com‘;

// 设置网页编码
header(‘Content-Type: text/html; charset=utf-8‘);

// 设置网页输出一个图片流
header(‘Content-Type: image/jpeg‘);

// 设置网页输出一个pdf文档
header(‘Content-Type: application/pdf‘);

// 设置网页输出一个zip文档
header(‘Content-Type: application/zip‘);

Responses 部分


Header



示例


Accept-Ranges


表明服务器是否支持指定范围请求及哪种类型的分段请求


Accept-Ranges: bytes


Age


从原始服务器到代理缓存形成的估算时间(以秒计,非负)


Age: 12


Allow


对某网络资源的有效的请求行为,不允许则返回405


Allow: GET, HEAD


Cache-Control


告诉所有的缓存机制是否可以缓存及哪种类型


Cache-Control: no-cache


Content-Encoding


web服务器支持的返回内容压缩编码类型。


Content-Encoding: gzip


Content-Language


响应体的语言


Content-Language: en,zh


Content-Length


响应体的长度


Content-Length: 348


Content-Location


请求资源可替代的备用的另一地址


Content-Location: /index.htm


Content-MD5


返回资源的MD5校验值


Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==


Content-Range


在整个返回体中本部分的字节位置


Content-Range: bytes 21010-47021/47022


Content-Type


返回内容的MIME类型


Content-Type: text/html; charset=utf-8


Date


原始服务器消息发出的时间


Date: Tue, 15 Nov 2010 08:12:31 GMT


ETag


请求变量的实体标签的当前值


ETag: “737060cd8c284d8af7ad3082f209582d”


Expires


响应过期的日期和时间


Expires: Thu, 01 Dec 2010 16:00:00 GMT


Last-Modified


请求资源的最后修改时间


Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT


Location


用来重定向接收方到非请求URL的位置来完成请求或标识新的资源


Location: http://www.zcmhi.com/archives/94.html


Pragma


包括实现特定的指令,它可应用到响应链上的任何接收方


Pragma: no-cache


Proxy-Authenticate


它指出认证方案和可应用到代理的该URL上的参数


Proxy-Authenticate: Basic


refresh


应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)


Refresh: 5; url=

http://www.zcmhi.com/archives/94.html


Retry-After


如果实体暂时不可取,通知客户端在指定时间之后再次尝试


Retry-After: 120


Server


web服务器软件名称


Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)


Set-Cookie


设置Http Cookie


Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1


Trailer


指出头域在分块传输编码的尾部存在


Trailer: Max-Forwards


Transfer-Encoding


文件传输编码


Transfer-Encoding:chunked


Vary


告诉下游代理是使用缓存响应还是从原始服务器请求


Vary: *


Via


告知代理客户端响应是通过哪里发送的


Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)


Warning


警告实体可能存在的问题


Warning: 199 Miscellaneous warning


WWW-Authenticate


表明客户端请求实体应该使用的授权方案


WWW-Authenticate: Basic

更多参见 w3c官网Header Field Definitions


Content-Type


请求的与实体对应的MIME信息


Content-Type: application/x-www-form-urlencoded


Date


请求发送的日期和时间


Date: Tue, 15 Nov 2010 08:12:31 GMT


Expect


请求的特定的服务器行为


Expect: 100-continue


From


发出请求的用户的Email


From: [email protected]


Host


指定请求的服务器的域名和端口号


Host: www.zcmhi.com


If-Match


只有请求内容与实体相匹配才有效


If-Match: “737060cd8c284d8af7ad3082f209582d”


If-Modified-Since


如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码


If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT


If-None-Match


如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变


If-None-Match: “737060cd8c284d8af7ad3082f209582d”


If-Range


如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为Etag


If-Range: “737060cd8c284d8af7ad3082f209582d”


If-Unmodified-Since


只在实体在指定时间之后未被修改才请求成功


If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT


Max-Forwards


限制信息通过代理和网关传送的时间


Max-Forwards: 10


Pragma


用来包含实现特定的指令


Pragma: no-cache


Proxy-Authorization


连接到代理的授权证书


Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==


Range


只请求实体的一部分,指定范围


Range: bytes=500-999


Referer


先前网页的地址,当前请求网页紧随其后,即来路


Referer: http://www.zcmhi.com/archives/71.html


TE


客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息


TE: trailers,deflate;q=0.5


Upgrade


向服务器指定某种传输协议以便服务器进行转换(如果支持)


Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11


User-Agent


User-Agent的内容包含发出请求的用户信息


User-Agent: Mozilla/5.0 (Linux; X11)


Via


通知中间网关或代理服务器地址,通信协议


Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)


Warning


关于消息实体的警告信息


Warn: 199 Miscellaneous warning

Requests部分


Header



示例


Accept


指定客户端能够接收的内容类型


Accept: text/plain, text/html


Accept-Charset


浏览器可以接受的字符编码集。


Accept-Charset: iso-8859-5


Accept-Encoding


指定浏览器可以支持的web服务器返回内容压缩编码类型。


Accept-Encoding: compress, gzip


Accept-Language


浏览器可接受的语言


Accept-Language: en,zh


Accept-Ranges


可以请求网页实体的一个或者多个子范围字段


Accept-Ranges: bytes


Authorization


HTTP授权的授权证书


Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==


Cache-Control


指定请求和响应遵循的缓存机制


Cache-Control: no-cache


Connection


表示是否需要持久连接。(HTTP 1.1默认进行持久连接)


Connection: close


Cookie


HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。


Cookie: $Version=1; Skin=new;


Content-Length


请求的内容长度


Content-Length: 348

转载地址:http://www.cnblogs.com/breezemist/p/3483777.html

时间: 2024-10-10 06:02:39

Http协议——Header说明的相关文章

[转]http协议 header

本文根据RFC2616(HTTP/1.1规范),参考 http://www.w3.org/Protocols/rfc2068/rfc2068 http://www.w3.org/Protocols/rfc2616/rfc2616 http://www.ietf.org/rfc/rfc3229.txt 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成.HTTP的头域包括通用头,请求头,

HTTP协议header标头详解

本文根据RFC2616(HTTP/1.1规范),参考 http://www.w3.org/Protocols/rfc2068/rfc2068 http://www.w3.org/Protocols/rfc2616/rfc2616 http://www.ietf.org/rfc/rfc3229.txt 通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成.HTTP的头域包括通用头,请求头,

HTTP协议header中Content-Disposition中文文件名乱码

产生原因:header中只支持ASCII,所以我们传输的文件名必须是ASCII,当文件名为中文时,必须要将该中文转换成ASCII. 解决方法:对中文文件名使用url编码:java.net.URLEncoder.encode(fileName, "UTF8");(除了IE,其他浏览器都不会乱码). 浏览器几个容易混淆点: 1.所有浏览器的userAgent都带Mozilla,不能通过Mozilla判断是哪种浏览器. 原文地址:https://www.cnblogs.com/lcfeiyu

header()

这篇文章主要给大家汇总介绍了PHP 常用的header头部定义,十分的全面细致,有需要的小伙伴可以参考下. 原文地址  http://www.jb51.net/article/68159.htm header() 函数向客户端发送原始的 HTTP 报头. 认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

http标头详解/即php中header函数应用解释

HTTP协议header标头详解 分类: Webkit Web Php C/C++ 2012-10-31 11:19 14366人阅读 评论(0) 收藏 举报 本文根据RFC2616(HTTP/1.1规范),参考 http://www.w3.org/Protocols/rfc2068/rfc2068 http://www.w3.org/Protocols/rfc2616/rfc2616 http://www.ietf.org/rfc/rfc3229.txt 通常HTTP消息包括客户机向服务器的请

【安全牛学习笔记】基本工具-常见协议包、WIRESHARK-TCP

WIRESHARK-常见协议包 数据包的分层结构 arp icmp tcp-三次握手 udp dns http ftp 例:arp 第一层包的相关信息.多少帧,大小,传输时间等统计信息 第二层数据包的内容字段.首先是目标地址,源地址.上层协议类型.  占位地段 第三arp包头. 硬件地址类型1表示以太网    协议类型ip解析成arp地址  硬件地址长度   ip地址4字节32位   操作代码  arp包头内容包含发送端的mac和ip目标端的mac和ip 例:ssdp 第一层汇总信息 第二层二层

架构设计:系统间通信(32)——其他消息中间件及场景应用(下2)

(接上文<架构设计:系统间通信(31)--其他消息中间件及场景应用(下1)>) 5-3.解决方案二:改进半侵入式方案 5-3-1.解决方法一的问题所在 方案一并不是最好的半侵入式方案,却容易理解架构师的设计意图:至少做到业务级隔离.方案一最大的优点在于日志采集逻辑和业务处理逻辑彼此隔离,当业务逻辑发生变化的时候,并不会影响日志采集逻辑. 但是我们能为方案一列举的问题却可以远远多于方案一的优点: 需要为不同开发语言分别提供客户端API包.上文中我们介绍的示例使用JAVA语言,于是 事件/日志采集

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

HTTP2协议规范详述

HTTP2协议规范详述 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 2015年2月19日,HTTP协议规范的标准化组织The Internet Engineering Task Force's HTTP Working Group,正式发布了HTTP 2协议.HTTP协议工作组实际上发布了两个相关的规范: 1)HTTP/2协议2)HPACK HPACK是HTTP/2协议Header部分的压缩规范. HTTP/2协议规范的制定工作是从2012年开始