HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。 请求头标:允许客户端传递关于自身的信息和希望的响应形式。 响应头标:服务器和于传递自身信息的响应。 实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。 HTTP Request Header 请求头 Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编码集。 Accept-Charset: iso-8859-5 Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型。 Accept-Encoding: compress, gzip Accept-Language 浏览器可接受的语言 Accept-Language: en,zh Accept-Ranges 可以请求网页实体的一个或者多个子范围字段 Accept-Ranges: bytes Authorization HTTP授权的授权证书 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Cache-Control 指定请求和响应遵循的缓存机制 Cache-Control: no-cache Connection 表示是否需要持久连接。(HTTP 1.1默认进行持久连接) Connection: close Cookie HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。 Cookie: $Version=1; Skin=new; Content-Length 请求的内容长度…
Month: December 2016
HTTPS 升级指南
为了升级到 HTTP/2 协议,必须先启用 HTTPS。 本文介绍如何将一个 HTTP 网站升级到 HTTPS 。 一、获取证书 升级到 HTTPS 协议的第一步,就是要获得一张证书。 证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。 GoGetSSL SSLs.com SSLmate.com 证书有很多类型,首先分为三种认证级别。 域名认证(Domain Validation):最低级别认证,可以确认申请人拥有这个域名。对于这种证书,浏览器会在地址栏显示一把锁。 公司认证(Company Validation):确认域名所有人是哪一家公司,证书里面会包含公司信息。 扩展认证(Extended Validation):最高级别的认证,浏览器地址栏会显示公司名。 还分为三种覆盖范围。 单域名证书:只能用于单一域名,foo.com的证书不能用于www.foo.com 通配符证书:可以用于某个域名及其所有一级子域名,比如*.foo.com的证书可以用于foo.com,也可以用于www.foo.com 多域名证书:可以用于多个域名,比如foo.com和bar.com 认证级别越高、覆盖范围越广的证书,价格越贵。 还有一个免费证书的选择。为了推广HTTPS协议,电子前哨基金会EFF成立了 Let’s Encrypt,提供免费证书(教程和工具)。 拿到证书以后,可以用 SSL Certificate Check 检查一下,信息是否正确。 二、安装证书 证书可以放在/etc/ssl目录(Linux 系统),然后根据你使用的Web服务器进行配置。 证书配置文件生成器,by Mozilla 配置文件模板,by SSLMate 如果使用 Let’s Encrypt 证书,请使用自动安装工具 Certbot。 安装成功后,使用 SSL Labs Server Test…
HTTP 协议入门
HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。 本文介绍 HTTP 协议的历史演变和设计思路。 一、HTTP/0.9 HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。 最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。 GET /index.html 上面命令表示,TCP 连接(connection)建立后,客户端向服务器请求(request)网页index.html。 协议规定,服务器只能回应HTML格式的字符串,不能回应别的格式。 <html> <body>Hello World</body> </html> 服务器发送完毕,就关闭TCP连接。 二、HTTP/1.0 2.1 简介 1996年5月,HTTP/1.0 版本发布,内容大大增加。 首先,任何格式的内容都可以发送。这使得互联网不仅可以传输文字,还能传输图像、视频、二进制文件。这为互联网的大发展奠定了基础。 其次,除了GET命令,还引入了POST命令和HEAD命令,丰富了浏览器与服务器的互动手段。 再次,HTTP请求和回应的格式也变了。除了数据部分,每次通信都必须包括头信息(HTTP header),用来描述一些元数据。 其他的新增功能还包括状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等。 2.2 请求格式 下面是一个1.0版的HTTP请求的例子。 GET / HTTP/1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) Accept: */* 可以看到,这个格式与0.9版有很大变化。 第一行是请求命令,必须在尾部添加协议版本(HTTP/1.0)。后面就是多行头信息,描述客户端的情况。…