常见的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)

时间: 2024-10-13 14:29:32

常见的HTTP Headers的相关文章

provisional headers are shown 知多少

前言 请求里面provisional headers are shown(显示临时报头) 出现的情况很多,但原因是多样的. 如果你去直接匹配关键字搜索,得到的结果可能与你自己的情况大相径庭. 网上大部分都是在跨域时出现,或者是请求被插件拦截,但关于缓存时的请求很少. 我在上文查看缓存的时候发现了这个问题,当时查找资料都是聚焦于请求被拦截, 所以本文就简单整理一下相关情况. 问题描述 当刷新页面时,想要查看http请求header中相关信息时, 发现使用缓存的请求(from disk cache或

【转】WEB网站常见受攻击方式及解决办法

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码的数据.当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行.通过XSS可以比较容易地修改用户数据.窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击 常见解决办法:确保输出到HTML页面的数据以HTML的方式被转

常见C++面试题(三)

strcpy和memcpy有什么区别?strcpy是如何设计的,memcpy呢? strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符.(保证dest可以容纳src.) memcpy提供了一般内存的复制.即memcpy对于需要复制的内容没有限制,因此用途更广. strcpy的原型是:char* strcpy(char* dest, const char* src); char * strcpy(char * dest, const

四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式. 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下面这样: BASH<method> <request-URL> <vers

为何大量网站不能抓取?爬虫突破封禁的6种常见方法

在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长.今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots).最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析,提取需要的信息. 本文假定读者已经了解如何用代码来抓取一个远程的 URL,并具备表单如何提交及 JavaScript 在浏览器如何运行的机制.想更多了解网络数据采集基础知识,可以参考文后的资料. 在采集网站的时会遇到一些比

网站常见的反爬虫和应对方法

这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度. 通过Headers反爬虫  从用户请求的Headers反爬虫是最常

php curl常见错误:SSL错误、bool(false)

症状:php curl调用https出错 排查方法:在命令行中使用curl调用试试. 原因:服务器所在机房无法验证SSL证书. 解决办法:跳过SSL证书检查. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 症状:php curl调用curl_exec返回bool(false),命令行curl调用正常. 排查方法: var_dump(curl_error($ch)); 返回: string(23) "Empty reply from server

常见的三种Web服务架构

常见的三种Web服务架构 转自http://www.cnblogs.com/bvbook/archive/2008/12/24/1360942.html 相互竞争的服务架构 The Competing Architectures 我们已经给出了“不同Web服务会有不同做法”的两个主要问题,现在要据此对不同风格的Web服务进行分类了.根据我的研究,常见的Web服务架构主要有三种:REST式架构.RPC式架构和REST-RPC混合架构.下面依次对它们进行介绍. REST式.面向资源的架构 RESTf

常见的反爬虫和应对方法

0x01 常见的反爬虫 这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度. 0x02 通过Headers反爬虫 从用户