常见的HTTP Headers
协议就是交互双方协商好要遵守的规范,打个不恰当的比方,就好像交谈双方约定要使用的同一种语言。如果我讲英文,你讲中文,大家都相互听不懂,交流那就得嗝屁了。
HTTP协议就是需要交互的客户端(通常是浏览器)和http服务器协商共同说的一种语言。HTTP协议是基于文本的,所以,我们可以不借助浏览器或者其它http客户端,只使用telnet与http服务器相连,然后发送一个基于http请求规范的文本,服务器照样能明白我们想要什么。
HTTP的请求报文和响应报文都是由三部分组成:开始行,首部行,实体主体。本文我们主要是熟悉下首部行常见的一些headers。
HTTP headers分为以下四种类型:
- Entity: 实体主体(entity body)或资源的元信息
- General: 适用request和reponse信息
- Request: 浏览器或者其它客户端向服务器发送的请求
- Response: 服务器针对请求的响应
常见的适用Request的首部:
- Accept: 指定接受的Internet媒体类型
- Accept-Charset: 指定接受的字符编码
- Accept-Encoding: 指定接受的数据格式转换,比如压缩
- Accept-Language: 指定接受的自然语言
- Authorization: 为请求资源需提供的验证信息
- Expect: 表示客户端要求的服务器执行的特殊动作
- From: 发送请求的人的email
- Host: 指定资源所在的Internet host和端口号
- If-Match,If-None-Match: 与entity tags配合的缓存机制(客户端缓存)
- If-Modified-Since, If-Unmodified-Since: 与指定时间配合的缓存机制
- Proxy-Authorization: 向代理提供身份
- Referer: 获取请求请求URI的地址
- User-Agent: 产生请求的user agent或客户端信息
常见的适用Response的首部:
- Accept-Ranges: 服务器接受的资源切割的类型范围,如Accept-Ranges: bytes
- Age: 原始服务器响应产生的时间
- ETag: 基于缓存目为请求的资源(variant)生成的类似对象id的entity tag
- Location: 资源重定向的目的地
- Proxy-Authenticate: 表明需要验证信息来获取资源
- Retry-After: 表明服务unavailable的时间
- Server: 服务器处理请求的软件信息
常见的适用Response和Request的首部:
- Cache-Control: 指定在request/response链上所有缓存机制必须遵循的指令
- Connection: 表明某一特定连接需要的动作,设置后可防止代理再次利用此连接交互
- Date: 信息产生的时间
- Pragma: 在request/response链原则上要遵循的指令
- Upgrade: 客户端偏向使用的协议,如果服务器支持这种协议,则转换有此种协议交互
- Warning: 未反映在正常信息里的额外信息
常见的适用于Entity的首部:
- Allow: 允许的对资源的操作,例如Allow: GET, HEAD, PUT
- Content-Encoding: 表明针对entity进行的额外的数据转换,比如压缩
- Content-Language: entity所适用的语言
- Content-Length: entity-body大小
- Content-Location: 如果entity内容来自其它URI,指明该URI的位置
- Content-Type: 指明Internet媒体类型,经常还会包括字符编码类型
- Content-Range: 资源切割的位置
- Expires: 表明响应过期的时间
- Last-Modified: 最后修改时间
参考链接:
- [Quick reference to HTTP headers](http://www.cs.tut.fi/~jkorpela/http.html)
常见的HTTP Headers的更多相关文章
- 转:什么是 HTTP Headers?
什么是HTTP Headers HTTP是“Hypertext Transfer Protocol”的所写,整个万维网都在使用这种协议,几乎你在浏览器里看到的大部分内容都是通过http协议来传输的,比 ...
- http headers
什么是HTTP Headers HTTP是“Hypertext Transfer Protocol”的所写,整个万维网都在使用这种协议,几乎你在浏览器里看到的大部分内容都是通过http协议来传输的,比 ...
- provisional headers are shown 知多少
前言 请求里面provisional headers are shown(显示临时报头) 出现的情况很多,但原因是多样的. 如果你去直接匹配关键字搜索,得到的结果可能与你自己的情况大相径庭. 网上大部 ...
- 【转】provisional headers are shown 知多少
前言 请求里面provisional headers are shown(显示临时报头) 出现的情况很多,但原因是多样的.如果你去直接匹配关键字搜索,得到的结果可能与你自己的情况大相径庭.网上大部分都 ...
- HTTP Header 入门详解
什么是HTTP Headers HTTP是"Hypertext Transfer Protocol"的所写,整个www都在使用这种协定,几乎你在流览器里看到的大部分内容都是通过ht ...
- GET、POST详解 --转自http://hi.baidu.com/richarwu/item/bd43633a6ba62986b611dbcd
HTTP Get,Post请求详解 请求类型 三种最常见的请求类型是:GET,POST 和 HEAD GET:获取一个文档 大部分被传输到浏览器的html,images,js,css, … 都是通过G ...
- 【转载】浏览器缓存详解:expires cache-control last-modified
https://www.cnblogs.com/caiyanhu/p/6931624.html 下面的内容展示了一个常见的 Response Headers,这些 Headers 要求客户端最多缓存 ...
- PWA渐进式web应用
PWA(Progressive Web App)是一种理念,使用多种技术来增强web app的功能,可以让网站的体验变得更好,能够模拟一些原生功能,比如通知推送.在移动端利用标准化框架,让网页应用呈现 ...
- 【http】四种常见的 POST 提交数据方式
来源:http://www.cnblogs.com/aaronjs/p/4165049.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT ...
随机推荐
- NoClassDefFoundError vs ClassNotFoundException
我们先来认识一下Error 和Exception, 两个都是Throwable类的直接子类. Javadoc 很好的说明了Error类: An Error is a subclass of Thro ...
- 【Bootstrap】Bootstrap-select多选下拉框实现
目录 前言 需要引用的它们 核心选项 核心方法 实例应用 回到顶部 前言 项目中要实现多选,就想到用插件,选择了bootstrap-select. 附上官网api链接,http://silviomor ...
- Android检测网络是否正常代码!
在Android开发中,如果该应用程序需要连接网络请求,那么最好我们先做一个检测网络是否在线的判断,否则程序容易出现卡死或FC等Bug,应该判断如果手机离线则弹出提示让用户检查网络,如果正常则继续执行 ...
- 坑爹的私有API
iOS私有API扫描工作总结 背景 苹果提供的iOS开发框架分PrivateFramework和Framework,PrivateFramework下的库是绝对不允许在提交的iOS应用中使用的,只允许 ...
- stack.sh failing giving error "g-api did not start"
same issue i faced , tried with ./unstack.sh and ./clean.sh also but couldn't fix the issue.Followin ...
- jstl
今日内容 l JSTL标签库 l EL函数 l 自定义标签库开发 l JSP模式和案例(*****) 1.1 上次课内容总结 JSP技术: * JSP:Java Server Pages * JSP运 ...
- SQL的ROW_NUMBER函数
with tabs as ( select ROW_NUMBER() over(partition by customerID order by totalPrice) as rows,custome ...
- SQL创建字段信息(表值函数)
ALTER FUNCTION [dbo].[fnt_SplitString] ( @p1 varchar(Max), ) ) RETURNS @Table_Var TABLE ( c1 varchar ...
- xcode 消除警告
项目中引用大量的第三方代码时,这些代码很复杂,不要轻易去改动它,如果编译产生很多警告,该如何消除呢? 1. 最直接.最一劳永逸.最安全的方式,直接找到警告的那段代码,改为不警告.这个方式最安全. 可是 ...
- 使用原生ajax访问后台数据并将其展现在前端页面中(小菜鸟自己整理玩的,大神勿喷)
首先你要有php的环境,关于php环境的搭建,php本地站点的搭建,此处不再重复请看这里:http://www.cnblogs.com/Gabriel-Wei/p/5950465.html我们把wam ...