图解HTTP
2019-10-18 11:19:09 2 举报
AI智能生成
图解HTTP
作者其他创作
大纲/内容
第一章:了解web以及网络基础
HTTP概念
Web使用一种叫做HTTP(HyberText Transfer Protocol,超文本传输协议)协议作为规范,完成客户端到服务端等一系列运作流程。
3项WWW构建技术
将SGML作为页面标记语言的HTML
作为文档传输协议的HTTP
指定文档所在地址的URL
Web的通信方式
Web是建立在HTTP协议上进行的
网络基础TCP/IP:
通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作
HTTP属于它内部的一个子集
把与互联网相关联的协议集合起来总称为TCP/IP
TCP/IP协议族按层次分别为以下4层
应用层、传输层、网络层和数据链路层
TCP/IP协议的分层管理
应用层:决定了向用户提供应用服务时通信的应用服务。比如FTP和DNS服务就是其中的两类。当然,HTTP也是出于该层。
传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
在传输层有两个性质不同的协议:TCP(传输控制协议)和UDP(用户数据报协议)
网络层:用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。
链路层:用来处理连接网络的硬件部分
包括操作系统、硬件的设备驱动、NIC(网卡),及光纤的可见部分,硬件上的范畴均在链路层的作用范围内。
HTTP 关系密切的协议 : IP、TCP 和 DNS
IP协议
作用
把各种数据包传递给对方
条件
IP地址。指明了节点被分配到的地址。
MAC地址。指网卡所属的固定地址。
负责域名解析的DNS协议
ARP协议
一种用来解析地址的协议,根据通信方的IP地址就可以反查出相对应的MAC地址
TCP协议
三次握手,四次挥手
URI 和 URL
统一资源标识符
URI 是 Uniform Resource Identifier 的缩写
Uniform
规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文 环境来识别资源指定的访问方式
Resource
资源的定义是“可标识的任何东西”
Identifier
表示可标识的对象。也称为标识符。
URL(统一资源定位符):使用web浏览器等访问web页面时需要输入的网页地址。表示资源的地点,URL是URI的子集
相对URL,是指从浏览器中基本URI处指定的URL
HTTP 协议的通信过程:
第二章:简单的 HTTP 协议
HTTP协议用于客户端和服务器端的通信
HTTP是一种不保存状态的协议
HTTP这个级别,协议对于发送过的请求和响应都不做持久化的处理。
为什么要这么做?
为了更快的处理大量的事务,确保协议的可伸缩性
要保存状态的话要怎么做?
引入了Cookie技术
请求报文
是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的
响应报文
基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成
HTTP方法
HTTP方法有哪些?它们又有哪些用途
GET方法
获取资源
指定的资源经过服务器解析后返回的响应内容
POST方法
传输内容实体
PUT方法
传输文件
就像FTP协议中的请求文件上传一样,要求在请求报文的实体中包含文件内容,然后保存到请求的URI指定的位置
HEAD方法
获取报文首部
用于确认URI的有效性以及资源更新的日期时间等
DELETE方法
删除文件。与PUT方法相反,按照请求的URI删除指定的资源
OPTIONS方法
用来查询针对请求的URI指定的资源支持的方法。
分支主题
TRACE
追踪路径。让web服务器将之前的请求通信环回给客户端的方法
CONNECT方法
CONNECT方法要求在与代理服务器通信的时候建立隧道,实现用隧道协议进行TCP通信
主要使用SSL(secure sockets layer,安全套接层)和TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经过网络隧道传输。
持久连接节省流量
什么是持久连接
HTTP keep alive或者HTTP connection reuse
只要任意一端没有明确提出断开连接,则保持TCP连接状态
好处
减少了TCP连接重复建立和断开的时间开销
减轻了服务端的负载
Cookie技术
Cookie的工作原理
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态
Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的 首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器 发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出 去。
服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一 个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前 的状态信息。
第 3 章 HTTP 报文内的 HTTP 信息
HTTP报文
用于HTTP协议交互的信息被称为HTTP报文
请求端(客户端)的HTTP报文叫做请求报文
响应端(服务器端)的叫做响应报文
HTTP报文的主体用于传输请求或响应的实体主体
HTTP报文组成
报文首部
请求行:包含用于请求的方法,请求URI和HTTP版本。
状态行:包含表明响应结果的状态码,原因短语和HTTP版本。
首部字段:包含表示请求和响应的各种条件和属性的各类首部。
4 种首部
分别是:通用首部、请求首部、响应首部和实体首 部。
报文主体
报文主体和实体主体的差异
报文(message)
是 HTTP 通信中的基本单位,由 8 位组字节流(octet sequence, 其中 octet 为 8 个比特)组成,通过 HTTP 通信传输
实体(entity)
作为请求或响应的有效载荷数据(补充项)被传输,其内容由实 体首部和实体主体组成
报文主体等于实体主体
只有当传输中进行编码操作时,实体 主体的内容发生变化,才导致它和报文主体产生差异
HTTP协议中可以发送多种数据的多部分对象集合
在HTTP报文中使用多部分对象集合时,需要再首部字段里加上Content-type
获取部分内容的范围请求
需要制定下载的实体范围
内容协商返回最合适的内容
内容协商机制是指客户端喝服务器端就响应的资源内容进行交涉,然后提供给客户端最适合的资源
内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准
包含在请求报文中的某些首部字段(如下)就是判断的基准
Accept,Accept-Charset,Accpet-Encoding,Accept-Language,Content-Language
内容协商技术有以下3种类型:
服务器驱动协商、客户端驱动协商、透明协商
第四章:返回结果的HTTP状态码
状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果。状态码中数字中的第一位指定了响应类别,后两位无分类
2XX 成功:该响应结果表示请求被正常处理了
200 OK:表示从客户端发来的请求在服务器端被正常处理了
204 No Content:代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分
206 Partial Content:表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。
3XX 重定向:表明浏览器需要执行某些特殊的处理以正确处理请求
301 Moved Permanently:永久性保存。该状态码表示请求的资源已被分配了新的URL,以后应使用资源现在所指的URI
302 Found:临时性重定向。表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。
303 See Other:表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
304 Not Modified:表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304 Not Modified
307 Temporary Redirect:临时重定向,与302有相同的含义
4XX客户端错误:表明客户端是发送错误的原因所在
400 Bad Request:表示请求报文中存在语法错误。
401 Unauthorized:表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。
403 Forbidden:表示对请求资源的访问被服务器拒绝了,服务器端没有必要给出拒绝的详细理由
404 Not Found:表明服务器上无法找到请求的资源。
5XX 服务器错误:表示服务器本身发生错误。
500 Internal Server Error:表明服务器在执行请求时发生了错误
503 Service Unavailable:表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
第四章:与 HTTP 协作的 Web 服 务器
用单台虚拟主机实现多个域名
通信数据转发程序:代理、网关、隧道
代理
接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端
代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。代理不改变请求URI,会直接发送给前方持有资源的目标服务器
使用代理服务器的理由有:利用缓存技术(稍后讲解)减少网络带宽 的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要 目的
缓存代理
代理转发响应时,缓存代理(Caching Proxy)会预先将资源的副本 (缓存)保存在代理服务器上。 当代理再次接收到对相同资源的请求时,就可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。
透明代理
转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理 (Transparent Proxy)。反之,对报文内容进行加工的代理被称为非透明代理。
网关
能使通信线路上的服务器提供非HTTP协议服务
利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全性
隧道
可按要求建立一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信
隧道的目的是确保客户端能与服务器进行安全的通信
保存资源的缓存
缓存是指代理服务器或客户端本地磁盘内保护的资源副本。
利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间
缓存服务器
cdn
第六章:HTTP首部
HTTP请求报文:
在请求中,HTTP报文由方法、URI、HTTP版本、HTTP版本首部字段等部分构成。
HTTP响应报文:
在响应中,HTTP报文由HTTP版本、状态码(数HTT字和原因短语)、HTTP首部字段3部分构成
HTTP首部字段传递重要信息:
是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容
4种HTTP首部字段类型:通用首部字段、请求首部字段、响应首部字段、实体首部字段
第 7 章 确保 Web 安全的 HTTPS
HTTP的缺点:
1.通信使用明文(不加密),内容可能会被窃听
2.不验证通信方的身份,因此有可能遭遇伪装
3.无法证明报文的完整性,所以有可能已遭篡改
与 SSL 组合使用的 HTTP 被称为 HTTPS(HTTP Secure,超文本传输安全协议)
TTP + 加密 + 认证 + 完整性保护 = HTTPS
HTTPS,其实就是身披 SSL 协议这层外壳的 HTTP。
采用 SSL 后,HTTP 就拥有了 HTTPS 的加密、证书和完整性保护 这些功能。
证明公开密钥正确性的证书:数字证书
数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上
第 8 章 确认访问用户身份的认 证
HTTP/1.1使用的认证方式如下:
1. BASIC认证(基本认证)
分支主题
2. DIGEST认证(摘要认证)
分支主题
分支主题
3. SSL客户端认证
为达到 SSL 客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书。
4. FromeBase(基于表单)
分支主题
认证多半基于表单认证
基于表单认证一般会使用Cookie来管理Session(会话),是通过服务器端的Web应用,将客户端发送过来的用户ID和密码与之前登录过的信息做匹配来进行认证的
第 9 章 基于 HTTP 的功能追加 协议
第十章 构建 Web 内容的技术
第十一章 针对Web的攻击技术
主动攻击(active attack)是指攻击者通过直接访问 Web 应用, 把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的 资源进行攻击,因此攻击者需要能够访问到那些资源。
主动攻击模式里具有代表性的攻击是 SQL 注入攻击和 OS 命令注 入攻击。
被动攻击(passive attack)是指利用圈套策略执行攻击代码的攻 击模式。在被动攻击过程中,攻击者不直接对目标 Web 应用访 问发起攻击。(利用用户的身份攻击企业内部网络)
DoS 攻击(Denial of Service attack)是一种让运行中的服务呈停止状 态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。DoS 攻击的对 象不仅限于 Web 网站,还包括网络设备及服务器等
主要有以下两种DoS攻击方式:
集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也就呈停止状态。通过攻击安全漏洞使服务停止。
多台计算机发起的 DoS 攻击称为 DDoS 攻击(Distributed Denial of Service attack)。DDoS 攻击通常利用那些感染病毒的计算机作为攻 击者的攻击跳板。
0 条评论
下一页