我爱编程

读书笔记-图解HTTP

2017-10-29  本文已影响13人  靳晓阳s

了解 Web 及网络基础

简单的 HTTP 协议

HTTP 报文内的 HTTP 信息

返回结果的 HTTP 状态码

与 HTTP 协作的 Web 服务器

一台 Web 服务器可搭建多个独立域名的 Web 网站,也可以作为通信路径上的中转服务器提升效率。

一个服务器可以使用虚拟主机功能,就像是有多台服务器一般

HTTP 通信时, 除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网管和隧道。它们可以配合服务器工作。

代理

代理:代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接受服务器返回的响应并转发给客户端。

每次经过代理服务器转发请求或相应时,会追加写入 Via 首部信息。

使用代理服务器理由:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的,等等。

代理有多种使用方法,按两种基准分类。一种是是否使用缓存,另一种是是否会修改报文。

缓存代理:会预先将资源的副本保存在代理服务器上。

透明代理:转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理。反之,对报文内容加工的代理被称为非透明代理。

网关

网关:网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求及进行处理。有事客户端可能都不会察觉,自己的通信目标是一个网关。

网关的工作机制和代理十分相似。而网关能使通信线路上的服务器提供非 HTTP 协议服务。

利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以保持连接的安全。比如,网管可以连接数据库,使用 SQL 语句查询数据。另外, 在 Web 购物网站进行信用卡结算时,网关可以和信用卡结算系统联动。

隧道

隧道: 隧道是相隔在甚远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序。

隧道可以按要求建立起一条与其他服务器的通信线路,届时使用 SSL 等加密手段进行通信。隧道的目的确保客户端与服务器进行安全的通信。

隧道本身不会解析 HTTP 请求。也就是说,请求保持原样中转给之后的服务器。隧道会在通信双方断开连接时结束。

HTTP 报文首部

HTTP 报文由 HTTP 版本、状态码、HTTP首部字段3部分构成。

HTTP 首部字段是构成 HTTP 报文的要素之一。在客户端与服务器之间以 HTTP 协议进行通信的过程中,无论是请求还是先响应都会使用到首部字段,它能起到传递额外重要信息的作用。

HTTP/1.1 通用首部字段

Cache-Control: 通过指定首部字段 Cache-Control 的指令,就能操作缓存的工作机制。

Connection: 控制不再转发给代理的首部字段,管理持久连接。

Date: 首部字段 Data 表明创建 HTTP 报文的日期和时间。

Pragma: 客户端会要求所有的中间服务器不返回缓存的资源。

Trailer: 会事先说明在报文主体后记录了哪些首部字段。

Transfer-Encoding: 规定了传输报文主体时采用的编码方式。

Upgrade: 用于检测 HTTP 协议及其他协议是否可使用更高的版本进行通信。

Via: 为了追踪客户端和服务器之间的请求和响应报文的传输路径。

ETag: 一种可将资源以字符串形式做唯一性标识的方式。服务器会为每份资源更新 ETag值。

Retry-After: 告诉客户端多久之后再次发送请求。

Content-Range: 针对范围请求,返回响应时使用的首部字段 Content-Rnage,能告知客户端作为响应返回的实体的哪个部分符合范围请求。

HttpOnly: 可以使 JavaScript 脚本无法获得 Cookie。

DNT: 拒绝个人信息被收集

确保 Web 安全的 HTTPS

在 HTTP 协议中可能会存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效地防止这些问题。

HTTP 协议的缺点

HTTPS 简述

HTTP + 通信加密 + 证书认证 + 完整性保护 = HTTPS

HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL 和 TLS 协议代替而已。

通常 HTTP 直接和 TCP 通信。当使用 SSL 时, 则演变成先和 SSL 通信, 再由 SSL 和 TCP 通信。

SSL 是独立于 HTTP 的协议,所以不光是 HTTP 协议, 其它运行在应用层的 SMTP 和 Telnet 等协议可配合 SSL 协议使用。

HTTPS 加密机制

HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。但是公开密钥与共享密钥相比,其处理速度要慢。

所以充分利用两者优势,将多种方法组合起来用于通信。在交换密钥环节使用公开密钥加密方式,之后建立通信交换报文阶段使用共享密钥加密方式。

在能使用 HTTPS 的情况下尽可能用 HTTPS

确认访问用户的身份

基于 HTTP 的功能追加协议

针对 Web 的攻击技术

--EOF--

上一篇 下一篇

猜你喜欢

热点阅读