图解HTTP(三)

第七章 确保Web安全的HTTPS

1、HTTP的不足

通信使用明文(不加密),内容可能被监听
不验证通信方的身份,因此可能遭遇伪装
无法验证报文的完整性,所以有可能已遭篡改

2、通信加密

1 通信的加密
2 内容的加密

3、通过查看对手的证书(SSL支持,第三方提供),来验证通信方

4、HTTP常用MD5和SHA-1等散列值校验方法来确认文件的数字签名,但是这需要用户亲自检查,浏览器无法自动帮用户检查。SSL提供认证和加密处理及摘要功能。

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

6、共享秘钥加密(加密和解密用同一把秘钥)

7、公开秘钥加密(发送秘文的一方利用对方的公开秘钥进行加密处理,对方收到被加密的信息后,利用自己的私有秘钥进行解密)

8、HTTPS采用混合加密机制(在交换秘钥环节使用公开秘钥加密方式,之后的通信交换报文阶段则使用共享秘钥加密方式)

9、数字证书的业务流程:首先,服务器的运营人员向数字证书认证机构提出公开秘钥的申请;数字证书机构在判明提出申请者的身份之后,会对已申请的公开秘钥做数字签名;然后,分配这个已经签名的公开秘钥,并将该公开秘钥放入公钥证书后绑定在一起;服务器会将这份公钥证书发送给客户端,以进行公开秘钥加密方式通信;客户端可使用数字证书认证机构颁发的公开秘钥,对那张证书上的数字签名进行验证,认证通过,证明服务器的公开秘钥是值得信赖的。

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

1、认证,只有登陆者本人才知道的信息

1 密码:只有本人知道的字符串信息
2 动态令牌:仅限本人持有的设备内显示的一次性密码
3 数字证书:仅限本人(终端)持有的信息
4 生物认证: 指纹或者虹膜等本人的生理信息
5 IC卡等:仅限本人持有的信息

2、HTTP/1.1使用的认证方式

BASIC认证(基本认证,明文)
DIGEST认证(摘要认证)
SSL客户端认证
FormBase认证(基于表单认证)

3、基于表单验证,会涉及Session管理及Cookie应用

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

1、消除HTTP瓶颈的SPDY,旨在解决HTTP的性能瓶颈,缩短Web页面的加载时间

2、解决瓶颈的方法

1 Ajax 异步JS达到局部刷新,传输数据变少
2 Comet 一旦服务器有内容更新了,Comet不会让请求等待,直接返回响应,如果没有更新,Comet会将响应置于挂起状态。这是一种延迟应答,模拟实现服务器端向客户端推送的功能。

3、SPDY没有完全改写HTTP,而是在TCP/IP的应用层与运输层之间通过新加会话层的形式运作。同时。考虑到安全性,规定通信中使用SSL。使用SPDY获得以下功能:

多路复用,单一TCP连接,可以无限制处理多个HTTP请求
赋予请求优先级
压缩HTTP首部
推送功能,支持服务器主动向客户端推动数据的功能
服务器提示功能,服务器可以主动提示客户端请求所需的资源,在资源已缓存等情况下,可以避免发送不必要的请求

4、使用浏览器进行双全工通信的WebSocket,WebSocket是建立在HTTP基础上的协议,因此连接的发起方仍是客户端,一旦建立通信连接,不论服务器或者客户端,任意一方都可直接向对方发送报文。(客户端发送HTTP连接握手请求,在Upgrade字段设置为WebSocket协议,通知服务器更新连接协议)

5、期盼已久的HTTP/2.0(7项技术讨论)

1 多路复用
2 TLS义务化
3 协商
4 客户端拉拽 服务端推送
5 压缩
6 流量控制
7 WebSocket

第十章 构建Web内容的技术

1、HTML

2、CGI 指Web服务器在接收到客户端发送来的请求后转给程序的一组机制。在CGI的作用下,程序会对请求内容作出相应的动作。

第十一章 Web的攻击技术

1、为服务器为目标的主动攻击,指攻击者通过直接访问Web应用,把攻击代码传入的攻击方式。

典型的攻击方式有,SQL注入攻击和OS命令注入攻击

2、以服务器为目标的被动攻击,指利用圈套策略执行攻击代码的攻击模式,在被攻击工程中,攻击者不直接对目标Web应用访问发起攻击。

典型的攻击方式有,跨站脚本攻击和跨站请求伪造

时间: 2024-07-30 14:17:38

图解HTTP(三)的相关文章

wireshark抓包图解-tcp三次握手四次挥手详解/

http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E8%AF%A6%E8%A7%A3/ wireshark抓包图解-tcp三次握手四次挥手详解/ tcpdump抓包命令使用方法及内容解析/

图解快三源码红黑玩法跨度等Python变量与赋值

图解快三源码红黑玩法跨度(企鹅:212303635)[阿酋联源码论坛-aqiulian.com]等Python变量与赋值 Python是一门独特的语言,与C语言有很大区别,初学Python很多萌新表示对变量与赋值不理解,学过C的都知道,给变量赋值时,需要先指定数据类型,同时会开辟一块内存区域,用于存储值,例如: int a = 1; a 就是内存空间中的一小块区域,就像是一个大房间里面的一个小盒子,赋值就是把整数1装载到盒子里面. 现在给变量a重新赋值 a = 2; 盒子依然是那个盒子,也就是说

wireshark抓包图解 TCP三次握手/四次挥手详解

wireshark抓到的包与对应的协议层如下图所示: 1. Frame:   物理层的数据帧概况 2. Ethernet II: 数据链路层以太网帧头部信息 3. Internet Protocol Version 4: 互联网层IP包头部信息 4. Transmission Control Protocol:  传输层的数据段头部信息,此处是TCP 5. Hypertext Transfer Protocol:  应用层的信息,此处是HTTP协议 1. 源端口号:数据发起者的端口号,16bit

wireshark抓包直观图解 TCP三次握手/四次挥手详解

转http://www.seanyxie.com/category/linux/ 作者:seanyxie | 一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.它们一起处理与电缆(或其他任何传输媒介)的物理接口细节. 2. 网络层,也称作互联网层,处理分组在网络中的活动,例如分组的选路.网络层协议包括IP协议(网际协议

图解tcp三次握手与四次挥手——【北杨】

TCP/IP.UDP协议简单介绍 TCP三次握手 TCP四次挥手 [附上学习链接]https://www.bilibili.com/video/av21816559/?p=2 原文地址:https://www.cnblogs.com/beiyang/p/10260896.html

Wireshark网络抓包(三)——网络协议

一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通过以太网发生IP数据包时,先封装第三层(32位IP地址)和第二层(48位MAC地址)的报头: 但由于发送数据包时只知道目标IP地址,不知道其Mac地址,且不能跨越第二.三层,所以需要使用地址解析协议. ARP工作流程分请求和响应: 在dos窗口内"ping"某个域名抓取到的包: 二.IP协

Navicat for Oracle 安装图解教程

Navicat for Oracle 主要用于对 Oracle 数据库的管理和开发,直观而强大的图形界面为 Oracle数据库的用户带来全新的体验.本Navicat教程将图解Navicat for Oracle安装过程. 步骤一 打开下载好的 Navicat应用程序.exe文件. Navicat for Oracle 安装图解 步骤二 在欢迎画面点击“下一步”. Navicat for Oracle 安装图解 步骤三 阅读许可协议.接受并点击“下一步”. Navicat for Oracle 安

基础笔记(三):网络协议剖析

目录 一.网络协议 二.TCP(Transmission Control Protocol,传输控制协议) TCP头格式 TCP协议中的三次握手和四次挥手 TCP报文抓取工具 三.HTTP(HyperText Transfer Protocol,超文本传输协议) 请求报文结构 请求报文样例 请求报文参数详解 响应报文结构 响应报文样例 响应报文参数详解 HTTP报文抓取工具 Session和Cookie 四.相关资料 一.网络协议 国际标准化组织(International Standard O

(转)查询A、B表中,A表中存在B表不存在的数据

(转)A.B两表,找出ID字段中,存在A表,但是不存在B表的数据.A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引. 方法一 使用 not in ,容易理解,效率低  ~执行时间为:1.395秒~ (第一种方法亲测可用) 1 select distinct A.ID from A where A.ID not in (select ID from B) 方法二 使用 left join...on... , "B.ID isnull" 表示左连接之后在B

05 数组概述和定义格式说明

class TestX { public static void main(String[] args) { /* int []arr={1,2,3}; int []arr1=new int [2];/这是一位数组定义的两种方法,静态的可以赋值,动态的不能再定义的时候赋值, / int[][]a={{1,2},{2,3,}}; int [][]a1=new int[2][2]; int [][]a2=new int [2][];//动态定义必须用new新建对象,静态的都不需要用new, a2[0