HTTP协议

第四章 返回结果的HTTP状态码

HTTP状态码负责表示客户端HTTP请求的返回结果,标记服务器端处理是否正常,通知出现的错误等;

placeholder类别原因短语
1XXInformational(信息状态码)接收的请求正在处理
2XXSucc(成功状态码)请求成功处理完毕
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)客户端无法处理请求
5XXServer Error(服务器错误状态码)服务器处理请求出错

更多HTTP状态码

其中 304,200,400,404,500出现的比较多; 305使用代理


第五章 与HTTP协作的Web服务器

用单台虚拟主机实现多个域名

HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点;即使物理层面只有一台服务器,但只要使用虚拟主机的功能,则可以假想已具有多台服务器。

通信数据转发程序

代理

接收服务器的请求并转发给服务器,同时也接受服务器的响应返回给服务器。

使用代理服务器的理由:

利用缓存技术减少带宽的流量,组织内部针对网站的控制,以获取访问日志为主要目的等。

代理按照使用方法的分类:
  • 缓存代理:代理转发响应式,缓存代理会先将资源的副本保存在代理服务器上。

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

##网关

接收客户端发送过来的请求并对其进行处理。

网关的工作机制和代理十分相似。而且网关能为通信线路上的服务器提供非HTTP协议服务。利用网关还能提高通信的安全性,因为在客户端与网关之间的通信线路上加密已确保连接的安全。

隧道

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

隧道可按照要求建立起一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。隧道本身并不会去解析HTTP请求,隧道会在通信双方断开连接时结束。


第六章 HTTP首部(头部)

HTTP报文首部

HTTP请求报文:

在请求中,HTTP报文由方法,URL,HTTP版本和HTTP首部字段等构成;

HTTP响应报文:

在响应中,HTTP报文游HTTP版本,状态码,HTTP首部三个部分组成。

HTTP首部字段

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

  • **通用首部字段(General Header Fields):**请求报文和响应报文两方都会使用的首部;

  • 请求首部字段(Request Header Fields): 从客户端向服务器发送请求报文时使用的首部。补充了请求的附加内容,客户端的信息,响应内容相关的优先级等信息。

  • 响应首部字段(Response Header Fields) 从服务器向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

  • 实体首部字段(Entity Header Fields): 针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

HTTP首部字段一览表

通用首部字段
首部字段名说明
Cache-Control控制缓存的行为
Connection逐跳首部,连接的管理
Date创建报文的日期时间
Pragna报文指令
Trailer报文末端的首部一览
Transfer-Encoding指定报文主体的传输编码方式
Upgrade升级为其他协议
Via代理服务器的相关信息
Warning错误通知

请求首部字段

首部字段名说明
Accept用户代理可处理的媒体类型
Accept-Charset优先的字符集
Accept-Encoding优先的内容编码
Accept-Language优先的语言(自然语言)
AuthorizationWeb认证信息
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对请求中的URL的原始获取方法
TE传输编码的优先级
User-AgentHTTP客户端程序的信息

(没完哦)


第七章 确保Web安全的HTTPS

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

HTTP的缺点

  • 通信使用明文(不加密),内容可能会被窃听;

  • 不验证通信方的身份,因此可能遭遇伪装;

  • 无法证明报文的完整性,所以可能已遭篡改。

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

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

SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。所以说SSL是当今世界上应用最为广泛的网络安全技术。

  • 由于HTTPS需要做服务器、客户端双方加密及解密处理,因此会消耗CPU和内存等硬件资源;

  • 和HTTP相比,SSL通信部分消耗网络资源。而SSL通信部分,又因为要对通信进行处理,所以时间上有延迟了;

  • 和HTTP相比,网络负载和速度上会变慢2~100倍。

为什么不一直使用HTTPS?

  • 一个原因与纯文本通信相比,加密通信会消耗更多的CPU及内存源,能够处理的请求数量必定会减少;

  • 另一个原因,想要节约购买证书的开销也是原因之一(通常一年的授权需要数万日元[一万日元600左右人民币])。

因此,如果是是非敏感信息则使用HTTP通信,只有在包含个人信息等敏感数据时,才利用HTTPS加密通信。


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

某些Web页面只想让特定的人浏览,或者干脆仅让本人可见,为了达到这个目的,必不可少的就是认证功能。

何为认证

  • **密码:**只有本人才会知道的字符串信息;
  • 动态令牌: 仅限本人持有的设备内显示的一次性密码;
  • 数字证书: 仅限本人终端持有的信息;
  • 生物认证: 指纹和虹膜等本人的生理信息;
  • IC卡等: 仅限本人持有的信息。

HTTP/1.1 使用的认证方式

  • BASIC认证: 基本认证

  • DIGEST认证: 摘要认证

  • SSL客户端认证:

  • FormBase认证: 基于表单的认证

由于使用的便利性和安全性的问题,HTTP协议标准提供的BASIC认证和DIGEST认证几乎不怎么使用,另外SSL客户端认证虽然具有高度的安全等级,但因为导入及维护费用等问题,还尚未普及,认证多为给予表单认证。

Session管理及Cookie应用


第九章 HTTP的功能追加协议

虽然HTTP协议既简单又快捷,但是随着时代的发展,其功能使用上捉襟见肘的疲惫状态已经凸显。

消除HTTP瓶颈的SPDY

Google在2010年发布了SPDY,其开发目标旨在解决HTTP的性能瓶颈,缩进Web页面的加载时间(%50)。

HTTP的瓶颈
  • 一条连接上只能发送一个请求;

  • 请求只能从客户端开始,客户端不可以接受除响应意外的指令;

  • 请求/响应首部未经压缩就发送,首部信息越多延迟愈大;

  • 发送冗长的首部,每次互相发送相同的首部造成的浪费较多;

  • 可任意选择数据压缩格式,非强制压缩发送;

Ajax的解决办法:

有效利用JavaScript和DOM的操作,以达到局部Web页面替换加载的异步通信手段。由于只更新一部分页面,响应中传输的数据量因此而减少。

Comet的解决办法:

通常服务器端接收到的请求,在处理完毕后就会立刻返回响应,但是为了,实现推送功能,Comet会先将响应置于挂起状态。当服务器有内容更新时,在返回该响应。因此,服务器一旦有更新,就可以立即反馈给客户端。

SPDY的设计与功能

SPDY没有完全改写HTTP协议,而是在TCP/IP的应用层与传输层之间通过新加会话层的形式运作。同时,烤炉到安全问题,SDPY规定通信中使用SSL。

  • 多路复用流;

  • 赋予请求优先级;

  • 压缩HTTP首部;

  • 推送功能;

  • 服务器提示功能。

使用浏览器进行全双工通信的WebSocket

WebSocket技术主要是为了解决Ajax和Comet里XMLHttpRequest附带的缺陷所引起的问题。

WebSocket协议

一旦Web服务器与客户端之间建立起WebSocket协议的通信连接,之后所有的通信都依靠这个专用协议进行。只要通信一确立,任意一方都可直接向对方发送报文。

Web服务器管理文件的WebDAV

WebDAV(基于万维网的分布式创作和版本控制)是一个可对Web服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统。除了创建、删除文件的基本功能,它还具备文件创建者管理、文件编辑过程中禁止其他用户内容覆盖的枷锁功能,以及对文件内容修改的版本控制功能。


第十章 构建Web内容的技等术

  • HTML/CSS

  • JavaScript/DOM

  • JavaScript/DOM


第十一章 Web的攻击技术

针对Web站点的攻击技术

简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。

  • HTTP不具备必要的安全功能

  • 在客户端即可篡改请求

  • 以服务器为目的的主动攻击:SQL注入、OS命令注入

  • 以服务器为目的的被动攻击:跨站脚本攻击、跨站点请求伪造

  • 利用用户的身份攻击企业内部网络

  • HTTP首部注入攻击

  • 邮件首部注入攻击

  • 目录遍历攻击

  • 远程文件包含漏洞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值