常见的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 ...
随机推荐
- hzwer模拟赛 Hzwer的陨石
题目描述 Description 经过不懈的努力,Hzwer召唤了很多陨石.已知Hzwer的地图上共有n个区域,且一开始的时候第i个陨石掉在了第i个区域.有电力喷射背包的ndsf很自豪,他认为搬陨石很 ...
- 【Alpha版本】冲刺阶段——Day 10
我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬 ...
- CentOS下SNMP的安装与使用
CentOS下SNMP的安装与使用 导读 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(datab ...
- BZOJ 4723: [POI2017]Flappy Bird
Description 从一个点到一条直线,每次纵坐标只能增加或减少1,有些位置有障碍,求最少增加步数. Sol 贪心. 或许是贪心吧...反正在可到达的范围内,纵坐标尽量小... 做的时候维护一下两 ...
- iOS9 新功能:Support Universal Links
先看官方文档:https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalL ...
- Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause
最近项目中页面比较复杂,springMVC传参过程中遇到这样一个错误:Could not instantiate bean class [java.util.List]: Specified clas ...
- virtualbox
下载安装:http://wiki.centos.org/zh/HowTos/Virtualization/VirtualBox
- slf4j介绍以及实现原理窥探
一.概述 slf4j(全称是Simple Loging Facade For Java)是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就好像我们经常使用的JDBC一样,只是 ...
- centos下查看最大Socket连接数
使用命令ulimit -a查看,其中open files就是最大连接数,一般情况下web服务器最大连接数的设置不能超过它 修改最大连接数:vi /etc/security/limits.conf 文件 ...
- Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)
1.压缩和解压缩命令 常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令 zip 压缩文件名 源文件:压缩文件 ...