`

http请求头和响应头的含义

 
阅读更多

参考文献: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格式时间"/>



分享到:
评论

相关推荐

    HTTP各状态码生成原理,请求头、响应头各字段含义(爬虫深入必备知识).docx

    详解HTTP状态码产生原理,理解HTTP请求和响应过程(提供图),描述请求头、响应头常用字段信息及理解。

    引用开源框架通过AsyncHttpClient处理get/post请求

    引用开源框架发送get请求给服务器步骤: 1.创建异步请求端对象 2.发送get请求,(get请求参数含义:请求的url...4.在成功请求里(status:响应状态码,headers:响应头信息,responseBody相应内容的字节码)设置控件内容

    Http请求状态及其含义.txt

    Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成

    计算机网络实验1

    计算机网络实验一,在线捕获数据包实验,观察以太网帧的ARP分组、ICMP分组,分别找出Echo和Stamp的请求和响应分组展开并截屏, 分析主要字段的含义。

    计算机网络原理实验报告---Wireshark实验:HTTP协议分析

    使用Wireshark工具对自己电脑的WLAN端口进行抓包,分析其访问一个网站(如www.baidu.com)的过程及所使用的协议,并对HTTP客户请求报文和HTTP服务器响应...2. 分析HTTP请求报文的常用请求头,和响应报文的常用响应头

    Hessian协议格式

    Hessian协议报文格式总结,详细解释了hesssian请求报文格式和应答报文格式,并举例说明应答报文每个字节的含义。

    八、设置HTTP应答头

    设置HTTP应答头往往和设置状态行中的状态代码结合起来。例如,有好几个表示“文档位置已经改变”的状态代码都伴随着一个Location头,而401(Unauthorized)状态代码则必须伴随一个WWW-Authenticate头。 然而,即使在...

    RFC(Request For Comments)-意即“请求评议”,包含了关于Internet的几乎所有重要的文字资料

    RFC81 涉及信息的请求 RFC84 NWG/RFC的1-80列表 RFC85 网络工作组会议 RFC90 CCN 作为一种网络服务中心 RFC99 网络会议 RFC101 对1971年2月17日伊利诺斯州的Urbana的网络工作组会议的注释 RFC102 主机-主机 协议...

    request的使用.txt

    在请求消息中发送将使得请求和响应消息都不使用缓存。 max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale...

    dsc-http-request-response-codealong-nyc01-dtsc-ft-080320

    目标你将能够: 解释HTTP请求/响应周期列出响应的状态码及其含义从响应中获取并解释状态码使用requests库在python中发出HTTP GET和POST请求Python中的requests库对于任何编程语言来说,处理HTTP请求都是一项艰巨的...

    求职有道-接口测试面试题

    2.http和https的区别? \1. http 是明文传输,超文本传输协议。https是加密传输 \2. https需要CA证书,一般是需要收费的 \3. 他们的默认端口不同,http是 80 https 443 3.常见的状态码有哪些?分别代表...

    rack-throttle:用于对传入的HTTP请求进行速率限制的机架中间件

    机架应用程序的HTTP请求速率限制器这是中间件,提供用于限制对Rack应用程序的传入HTTP请求的速率的逻辑。 您可以将Rack::Throttle与任何基于Rack的Ruby Web框架一起使用,包括Ruby on Rails和Sinatra。产品特点通过...

    Tomcat服务器响应过慢解决方案

     使用top命令查看服务器的资源使用情况,主要分析CPU和内存的使用情况(top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认5秒刷新一下进程列表,所以类似于 Windows 的任务...

    UPnP协议编程实践

    本文首先介绍协议的工作过程,包括协议的一般模型,以及与HTTP协议之间的关系,然后介绍HTTP协议的基本知识,主要介绍在简单服务发现协议中使用的一些协议请求和响应的消息格式。最后详细介绍协议的设备通知和设备...

    chatGPT400+调教指令

    在ChatGPT中,"prompts"是指预设的问题、话题或关键词,用于引导和激发ChatGPT生成响应。...通过使用prompts,ChatGPT可以更好地理解用户的请求,并生成更加有针对性的回答,从而提高ChatGPT的响应质量和用户体验。

    ChatGPT身份指令关键词-prompts.pdf

    在ChatGPT中,"prompts"是指预设的问题、话题或关键词,用于引导和激发ChatGPT生成响应。...通过使用prompts,ChatGPT可以更好地理解用户的请求,并生成更加有针对性的回答,从而提高ChatGPT的响应质量和用户体验。

    逐步解读HTTP报文的组成及含义

    报文是HTTP协议下请求和响应的信息基础,这里就带大家来逐步解读HTTP报文的组成及含义,需要的朋友可以参考下

    flowgpt 249个 ChatGPT 关键词汇总 中文版.pdf

    在ChatGPT中,"prompts"是指预设的问题、话题或关键词,用于...通过使用prompts,ChatGPT可以更好地理解用户的请求,并生成更加有针对性的回答,从而提高ChatGPT的响应质量和用户体验。同时,prompts也可以帮助ChatG

    flowgpt 249个 ChatGPT 关键词汇总 英文版.pdf

    在ChatGPT中,"prompts"是指预设的问题、话题或关键词,用于...通过使用prompts,ChatGPT可以更好地理解用户的请求,并生成更加有针对性的回答,从而提高ChatGPT的响应质量和用户体验。同时,prompts也可以帮助ChatG

    TCPIP协议详解卷3:TCP事务协议,HTTP,NNTP和UNIX域协议

    第一部分TCP事务协议 ...出请求,查询域名对应的I P地址,然后域名服务器给出响应。本书中的事务这个术语并没有 数据库中的事务那样的含义:加锁、两步提交、回退,等等。 1.2 UDP上的客户-服务器

Global site tag (gtag.js) - Google Analytics