常见的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 ...
随机推荐
- CSS隐藏多余文字的几个方法
通常偏移掉字体的方式是 (1)使用text-indent:-9999px; 可是他有一个局限性 他只适用于块级元素block而我们往往有时候想偏移掉的a上的字体所以问题就来了text-indent:- ...
- hzwer模拟赛 感冒病毒
题目描述 Description 一种感冒病毒正在学校里传播,这所学校有n个学生,m个学生社团,每个学生可能参加了多个社团,因为同一个社团的学生交流较多,所以如果一个学生感染上感冒病毒,那么他所在的社 ...
- 关闭Linux防火墙(iptables) 及 SELinux
一.关闭防火墙 1.重启后永久性生效: 开启:chkconfig iptables on 关闭:chkconfig iptables off 2.即时生效,重启后失效: 开启:service ipta ...
- 核心动画 - CAKeyframeAnimation 简单应用
核心动画: 登录按钮的抖动效果: CAKeyframeAnimation * kfAnimation = [CAKeyframeAnimation animationWithKeyPath:@&quo ...
- Unity3D 摄像机的Transform通过摇杆输出的方向
要解决的问题是:摄像机的方向不固定,当摇杆向前(0,1)推时,主角要往摄像机的朝向(忽略Y方向)走,当摇杆往右(1,0)推的时,主角朝摄像机的右方向 /// <summary> /// 摄 ...
- 【转】详解Java正则表达式语法
(转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...
- AngularJS SQL 获取数据
使用PHP从MySQL中获取数据: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Smooth Mouse
一款免费软件,使mac可以做到和 Windows 下的鼠标加速度的相同算法,实现同样 win 的鼠标操控感,也可以实现鼠标0加速度.
- 带callback的future实现
jdk暂时不支持,所以只有自己实现带callback的future. 完成后callback的 final TaskPromise promise = new DefaultTaskPromise() ...
- PAT A 1115. Counting Nodes in a BST (30)【二叉排序树】
题目:二叉排序树,统计最后两层节点个数 思路:数组格式存储,insert建树,dfs遍历 #include<cstdio> #include<iostream> #includ ...