HTTP入门知识的记录

2016-05-03  本文已影响0人  庄超人

本文内容基本来自于《图解HTTP》一书,只是对其中个人相对重要的内容进行记录,以便日后查找。

协议:不同的硬件、操作系统之间的通信所需要的规则被称为协议。
TCP/IP协议族:互联网相关的各类协议族的总称。
TCP/IP按层次分为4层,分别是应用层传输层网络层数据链路层。层次化的好处在于在规划好各层接口后,在改变设计时不需要顾虑整体,只需把变动的层替换掉即可,也使得各层在设计上变得相对简单。

IP(网际协议):位于网络层,用于把各种数据包传送给对方。
传送需要IP地址(节点被分配到的地址)和MAC地址(网卡所属的固定地址),IP地址可变换,MAC地址基本上不会更改。根据ARP协议,根据IP地址查出MAC地址,通过路由中转最终送达。

TCP三次握手:发送端SYN--接收端SYN/ACK--发送端ACK
TCP四次挥手:发送端FIN--接收端ACK--接收端FIN--发送端ACK

DNS:提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

HTTP协议报文分为请求报文响应报文两类。而请求报文是由请求方法请求URI协议版本可选的请求首部字段内容实体构成。响应报文是由协议版本状态码用以解释状态码的原因短语可选的响应首部字段以及实体主体构成。

报文结构图

HTTP协议是无状态协议,自身不对发送过的请求和响应之间的通信状态进行保存。但可以通过在URL带参数查询或通过Cookie技术,可以在请求和响应报文中写入Cookie信息来控制客户端的状态。
Cookie:首次请求时,服务器会生成Cookie信息,并在响应中添加Cookie信息后返回,当再次向同一个服务器发送请求时,客户端会在请求报文中添加之前保存过的Cookie信息。

HTTP/1.1 中可使用的方法:GETPOSTPUTHEADDELETEOPTIONS
TRACECONNECT
常用的方法有GET(获取资源)、POST(更新资源)、PUT(传输文件)、HEAD(类似于GET,但不返回报文主题)、DELETE(删除文件)。
在HTTP/1.1中,所有的连接默认都是持久连接。而持久连接使得管线化得以实现,客户端发送请求后无需等待响应即可发送下一个请求。

常用状态码
HTTP/1.1规范定义了如下47种首部字段
通用首部字段
首部字段名 说明
Cache-Control 控制缓存的行为
Connection 逐跳首部、连接的管理
Date 创建报文的日期时间
Pragma 报文指令
Trailer 报文末端的首部一览
Transfer-Encoding 指定报文主体的传输编码方式
Upgrade 升级为其他协议
Via 代理服务器的相关信息
Warning 错误通知
请求首部字段
首部字段名 说明
Accept 用户代理可处理的媒体类型
Accept-Charset 优先的字符集
Accept-Encoding 优先的内容编码
Accept-Language 优先的语言(自然语言)
Authorization Web认证信息
Expect 期待服务器的特定行为
From 用户的电子邮箱地址
Host 请求资源所在服务器
if-Match 比较实体标记(ETag)
if-Modified-Since 比较资源的更新时间
if-None-Match 比较实体标记(与if-Match相反)
if-Range 资源未更新时发送实体Byte的范围请求
if-Unmodified-Since 比较资源的更新时间(与if-Modified-Since相反)
Max-Forwards 最大传输逐跳数
Proxy-Authorization 代理服务器要求客户端的认证信息
Range 实体的字节请求范围
Referer 对请求中URI的原始获取方
TE 传输编码的优先级
User-Agent HTTP客户端程序的信息
响应首部字段
首部字段名 说明
Accept-Ranges 是否接受字节范围请求
Age 推算资源创建经过时间
ETag 资源的匹配信息
Location 令客户端重定向至指定URI
Proxy-Authenticate 代理服务器对客户端的认证信息
Retry-After 对再次发起请求的时机要求
Server HTTP服务器的安装信息
Vary 代理服务器缓存的管理信息
WWW-Authenticate 服务器对客户端的认证信息
实体首部字段
首部字段名 说明
Allow 资源可支持的HTTP方法
Content-Encoding 实体主体适用的编码方式
Content-Language 实体主体的自然语言
Content-Length 实体主体的大小(单位:字节)
Content-Location 替代对应资源的URI
Content-MD5 实体主体的报文摘要
Content-Range 实体主体的位置范围
Content-Type 实体主体的媒体类型
Expires 实体主体过期的日期时间
Last-Modified 资源的最后修改日期时间
通信的加密
HTTPS通信过程

加密方式:共享密钥加密和公开密钥加密方式。
共享密钥加密双方共用一个密钥,但密钥的传递过程存在风险。公开密钥分为公钥和私钥,发送方通过公钥加密,接收方通过私钥解密,极难破解。
证书:用以证明服务端公钥的真实性。方式--服务端向双方信赖的第三方数字证书认证机构提出公开密钥的申请。第三方则用自己的私有密钥向服务端的公开密钥署数字签名并颁发公钥证书。客户端拿到公钥证书后,使用第三方的公钥向公钥证书签名,以确认服务器公钥的真实性。

SPDY,Google2010年发布,旨在解决HTTP的性能瓶颈,缩短Web页面的加载时间(50%)。其没有完全改写HTTP协议,而是在TCP/IP的应用层与运输层之间通过新加会话层的形式运作。同时,为了安全性,规定通信中使用SSL。由于以会话层控制数据的流动,且仍是采用HTTP建立通信,因此可照常使用GET和POST等方法、Cookie以及HTTP报文等。
优势:

至于HTTP2.0就不过多赘述,可以参考HTTP2.0主要改动,写得很详细。

上一篇 下一篇

猜你喜欢

热点阅读