优秀的文章

iOS开发·读书笔记之《图解HTTP》(下)

2019-09-24  本文已影响0人  爱吃兔兔的胡萝卜吖

第六章 HTTP首部

6.1 HTTP报文首部

IMG_0701.JPG

HTTP请求报文

HTTP响应报文

6.2 HTTP首部字段

HTTP首部字段传递重要信息

HTTP首部字段结构

若HTTP首部字段重复了会如何

4种HTTP首部字段类型

通用首部字段
请求首部字段
响应首部字段
实体首部字段

HTTP/1.1 首部字段一览

非HTTP/1.1首部字段

End - to - end首部和Hop - by - hop首部

端到端首部
逐跳首部

6.3 HTTP/1.1通用首部字段

Cache-Control

Cache-Control指令一览
public指令
IMG_0718.PNG
private指令
IMG_0719.JPG
IMG_0720.PNG
no-cache指令
IMG_0721.JPG
IMG_0722.PNG
控制可执行缓存的对象的指令
no-store指令
IMG_0724.PNG
指定缓存期限和认证的指令
s-maxage指令
IMG_0725.PNG
max-age指令
IMG_0726.JPG
IMG_0727.PNG
min-fresh指令
IMG_0728.JPG
IMG_0729.PNG
max-stale指令
IMG_0730.PNG
only-if-cached指令
IMG_0731.PNG
must-revalidate指令
IMG_0732.PNG
proxy-revalidate指令
IMG_0733.PNG
no-transform指令
IMG_0734.PNG
Cache-Control拓展
cache-extension token
IMG_0735.PNG

Connection

Connection首部字段具备如下两个作用
控制不再转发给代理的首部字段
IMG_0736.JPG
IMG_0737.PNG
管理持久连接
IMG_0738.JPG
IMG_0739.PNG

Date

Pragma

Trailer

IMG_0749.JPG

Transfer-Encoding

IMG_0751.JPG

Upgrade

Via

Warning

6.4 请求首部字段

Accept

IMG_0759.JPG
IMG_0760.PNG

Accept-Charset

IMG_0761.JPG
IMG_0762.PNG

Accept-Encoding

IMG_0763.JPG
IMG_0764.PNG

Accept-Language

IMG_0765.JPG
IMG_0766.PNG

Authorization

IMG_0767.JPG
IMG_0768.PNG

Expect


IMG_0770.PNG

From

IMG_0771.JPG

Host

图:虚拟知己运行在同一个IP上,因此使用首部字段Host加以区分。.JPG
IMG_0773.PNG

If-Match

图:附带条件请求.JPG

If-Modified-Since

图:如果在If-Modified-Since字段指定的日期时间后,资源发生了更新,服务器会接受请求.JPG
IMG_0780.PNG

If-None-Match

图:只有在If-None-Match的字段值与ETag值不一致时,可处理该请求。与If-Match首部字段的作用相反.JPG

If-Range

IMG_0781.JPG

If-Unmodified-Since

IMG_0783.PNG

Max-Forwards

图:每次转发数值减1,当数值变0时返回响应.JPG
IMG_0785.PNG

Proxy-Authorization

IMG_0788.PNG

Range

IMG_0789.PNG

Referer

IMG_0790.JPG
IMG_0791.PNG

TE

IMG_0792.PNG

User-Agent

图:User-Agent用于传达浏览器的种类.JPG
IMG_0795.PNG

6.5 响应首部字段

Accept-Ranges

当不能处理范围请求时,Accept-Ranges:none.JPG
IMG_0798.PNG

Age

IMG_0799.JPG
IMG_0800.PNG

ETag

IMG_0801.JPG
IMG_0802.PNG
强ETag和弱ETag值
强ETag值
弱ETag值

Location

IMG_0806.JPG
IMG_0807.PNG

Proxy-Authenticate

IMG_0808.PNG

Retry-After

IMG_0809.JPG
IMG_0810.PNG

Server

IMG_0811.JPG
IMG_0812.PNG

Vary

图:当代理服务器接收到带有Vary首部字段指定获取资源的请求时,如果使用的Accept-Language字段的值相同,那么就直接从缓存返回响应。反之,则需要先从源服务器端获取资源后才能作为响应返回.JPG
IMG_0815.PNG

WWW-Authenticate

IMG_0816.PNG

6.6 实体首部字段

Allow

IMG_0818.JPG
IMG_0819.PNG

Content-Encoding

IMG_0820.PNG

Content-Language

IMG_0822.JPG
IMG_0823.PNG

Content-Length

IMG_0824.JPG
IMG_0825.PNG

Content-Location

IMG_0826.PNG

Content-MD5

图:客户端会对接收的报文主体执行相同的MD5算法,然后与首部字段Content-MD5的字段值比较.JPG
IMG_0828.PNG

Content-Range

IMG_0829.JPG
IMG_0830.PNG

Content-Type

IMG_0831.PNG

Expires

IMG_0832.JPG
IMG_0833.PNG

Last-Modified

IMG_0834.JPG
IMG_0835.PNG

6.7 为Cookie服务的首部字段

由网景公司颁布的规格标准
RFC2109
RFC2965
RFC6265
IMG_0836.JPG IMG_0837.JPG

Set-Cookie

IMG_0838.PNG
expires属性
path属性
domain属性
secure属性
IMG_0840.PNG
HttpOnly属性
IMG_0841.PNG

Cookie

IMG_0842.PNG

6.8 其他首部字段

X-Frame-Options

IMG_0843.PNG
对apache2.conf的配置实例
IMG_0844.PNG

X-XXS-Protection

IMG_0845.PNG

DNT

IMG_0846.JPG IMG_0847.PNG

P3P

IMG_0848.PNG

第七章 确保Web安全的HTTPS

7.1 HTTP的缺点

通信使用明文可能会被窃听

TCP/IP是可能被窃听的网络
图:互联网上的任何角落都存在通信内容被窃听的风险.JPG IMG_0850.JPG
加密处理防止被窥视
通信的加密
IMG_0851.JPG
内容的加密
IMG_0852.JPG

不验证通信方的身份就可能遭遇伪装

任何人都可发起请求
IMG_0853.JPG
查明对手的证书
IMG_0854.JPG

无法证明报文完整性,可能已遭篡改

接收到的内容可能有误
IMG_0855.JPG 图:中间人攻击.JPG
如何防止篡改
IMG_0857.JPG

7.2 HTTP + 加密 + 认证 + 完整性保护 = HTTPS

HTTP加上加密处理和认证以及完整性保护后即是HTTPS

IMG_0858.JPG IMG_0859.JPG

HTTPS是身披SSL外壳的HTTP

IMG_0860.JPG

相互交换秘钥的公开秘钥加密技术

共享密钥加密的困境
IMG_0861.JPG IMG_0862.JPG
使用两把密钥的公开密钥加密
IMG_0863.JPG
HTTPS采用混合加密机制
IMG_0864.JPG

证明公开秘钥正确性的证书

IMG_0865.JPG IMG_0866.JPG
可证明组织真实性的EV SSL证书
用以确认客户端的客户端证书
认证机构信誉第一
由自认证机构颁发的认证称为自签名证书

HTTPS的安全通信机制

SSL和TLS
SSL速度慢吗
IMG_0871.JPG
为什么不一直使用HTTPS

第八章 确定访问用户身份的认证

8.1 何为认证

IMG_0872.JPG

8.2 BASIC认证

BASIC认证的认证步骤

IMG_0873.JPG

8.3 DIFEST认证

DIFEST认证的认证步骤

IMG_0876.JPG

8.4 SSL客户端认证

SSL客户端认证的认证步骤

SSL客户端认证采用双因素认证

SSL客户端认证必要的费用

8.5 基于表单认证

认证多半未基于表单认证

Session管理及Cookie应用

第九章 基于HTTP的功能追加协议

上一篇 下一篇

猜你喜欢

热点阅读