http --- HTTPS是在安全的传输层上发送的HTTP

HTTPS:

// HTTPS是最常见的HTTP安全版本
// 是在安全的传输层上发送的HTTP// 将HTTP报文发送给TCP之前,先将其发送给了一个安全层(通过SSL协议实现),对其进行加密.然后再发送给TCP
// 在服务器端,通过提取商量好的密钥进行解密

HTTPS方案:

// 对Web服务器发起请求时,需要有一种方案来告知Web服务器执行(http,或https).
// 该方案在URL的方案中实现,具体如下:
// 通常情况下,非安全HTTP的URL方案前缀为http
// 如:http://www.joes-hardware.com/index.html
// 在安全HTTPS协议中,URL的方案前缀为https
// 如:https://cajun-shop.securesites.com/Merchant2/merchant.mv?Store_Code=AGCGS// 例:Web浏览器对某Web资源执行某事务时,会检查URL的方案
// ·如果URL的方案为http,客户端会打开一条到服务器端口80(默认情况下)的TCP连接,并向其发送老的HTTP命令
// ·如果URL的方案为https,客户端就会打开一条到服务器端口443(默认情况下)的连接,然后与服务器"握手"
//  以二进制格式与服务器交换一些SSL安全参数,附上加密的HTTP命令

SSL:

// 是一个二进制协议,其流量是承载在另一个端口(默认是443)上的

建立安全传输:

// 在未加密HTTP中,客户端会打开一条到Web服务器端口80的TCP连接,发送一条请求报文,接收一条响报文,关闭连接
// 在HTTPS中,客户端首先打开一条到Web服务器端口443的连接
// 一旦建立了TCP连接(三次握手完成),客户端和服务器就会初始化SSL层(SSL握手),对加密参数进行沟通,并交换密钥
// SSL握手完成之后,SSL初始化就完成了,客户端就可以将请求报文发送给安全层了
// 在将报文发送给TCP之前,要先对其进行加密

SSL握手:

// 在发送已加密的HTTP报文之前.客户端和服务器要进行一次SSL握手,这个握手主要完成以下工作:
// ·交换协议版本号
// ·选择一个两端都了解的密码
// ·对两端的身份进行认证
// ·生成磷酸的会话密钥,以便加密信道

总结:

// HTTP是在TCP连接之后直接,将客户端的请求报文托付给TCP
// HTTPS:在TCP连接后,(在端口443)进行SSL握手,在托付HTTP给TCP之前,先对HTTP进行加密,HTTP通过TCP到达服务器
//       利用事先商量好的密钥进行解密.

参考《HTTP权威指南》P339~P342

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法

Devexpress xaf框架生成的项目默认情况下导航栏是显示在左侧,有时候我们用某个账户登录后,发现导航栏无法显示在左侧,操作十分不方便。我们可以去数据库删除当前登录用户的自定义布局 解决方法如下: 1、查询PermissionPolicyUser用户表&#…

DOM-13 【实战】输入及状态改变事件、京东搜索框

模块化 IIFE window.onload function () {init() }function init() {keySearch()others() // 多人开发的模块 }var keySearch (function () {var searchKw document.getElementById(J_search_kw),autoKw document.getElementById(J_autoKw),recomKw JSON.parse(document…

吴恩达“机器学习”——学习笔记二

定义一些名词 欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数。 过拟合(overfitting):使用过量的特征集合,使模型过…

Http 概述

Http是可靠的数据传输协议。资源Web服务器是Web资源(resource)的宿主。包括静态文件以及动态的内容。 媒体类型Http对每种需要由web传输的对象都打上了名为MIME类型的数据格式标签。主要的mime类型: text/htmltext/plainimage/jpegimage/gifvideo/quickt…

DOM-14 【实战】解决事件代理和鼠标移动事件的窘态

鼠标的滑入滑出 案例 事件现象应用场景mouseover/mouseout绑定在父元素时,对她的所有子元素,事件都生效dom结构简单mouseenter/mouseleave只对她绑定的元素有效,对window绑定无效dom结构简单mousemove长触发dom结构复杂// 绑定在父元素上 /…

项目开发的一般流程

项目开发的一般流程 确定项目需求:拿下一个项目编写《需求说明书》:使用文字和图片的形式将业务表现清楚。不涉及技术,只涉及业务需求。这个环节要和客户反复沟通。编写《概要设计说明书》: 涉及技术的的宏观性的内容,…

获取日期的区间数组

Date.prototype.Format function (fmt) { //author: meizz var o { "M": this.getMonth() 1, //月份 "d": this.getDate(), //日 "h": this.getHours(), //小时 "m": this.getMinutes(), //分 "s": this.getSeconds(), /…

javascript --- 再读作用域和闭包

执行环境: // 定义了变量或函数有权访问的其他数据,决定了它们各自的行为 // 每个执行环境都有一个与之关联的变量对象 // 执行环境中定义的所有变量和函数都保存在这个变量中执行环境与函数: // 每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个…

DOM-15/16【实战】鼠标行为预测技术

鼠标预测行为动作复杂,使用事件代理得不偿失,在数量有限的情况下,使用循环绑定更好用户从menu斜着向右下角滑入时,可能是进入main,也可能是要选择子菜单,在判断前先做延迟如何判断用户进入main的意图&#…

SQLMAP命令详解

1.基础信息 python sqlmap/sqlmap.py -u "http://url/news?id1" --current-user #获取当前用户名称 python sqlmap/sqlmap.py -u "http://www.xxoo.com/news?id1" --current-db #获取当前数据库名称 python sqlmap/sqlmap.py -u "http://www.xxoo.…

Nginx命令大全

sudo nginx #打开 nginx nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx nginx -t #测试配置是否有语法错误nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]-?,-h : 打开帮助信息 -v : 显示版本信…

ES6-1 ES6版本过渡历史

一 历史 HTML HTML 1, HTML 2, HTML 3 1991-1997 IETF(the Internet Engineering Task Force) 国际互联网工程任务组1997.1 HTML3.2 W3C JavaScript 1995 liveScript(后改名为JavaScript1996年改名)1996 javascript 1.0 1.1;1997 Jscript1997.6 ECMAScript 1.01998.6 ECMAS…

oracle 数据库查询 COALESCE字符函数

功能:返回其参数中的第一个非空表达式,当你要在n个字段中选取某一个非空值 coalesce函数返回参数(列名)中第一个非NULL的字段值,注意不是为空 select COALESCE(t1.a ,t2.a) as a from table_a t1left join table_b t2…

Django-model进阶

知识预览 QuerySet中介模型查询优化extra整体插入回到顶部QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 。它等同于SQL 的LIMIT 和OFFSET 子句。 1>>> Entry.objects.all()[:5] # (LIMIT 5)>>> Entry.objects.all()[5:10] # (OFFSE…

vue --- 修饰符.lazy、.number、.trim

.lazy: 会在转变为change事件中同步 <div id"app"><input type"text" v-model.lazy"message"><p>{{ message }}</p> </div> <script>const app new Vue({el:#app,data: {message: }}) </script> //…

ES6-2 块级作用域与嵌套、let、暂行性死区

注意&#xff0c;写在开头 function test(x 1) {var x // 不报错console.log(x) } function test1(x 1) {let x 10 // 报错console.log(x) }let的变量名不可以和参数中的名称相同。而var并不限制&#xff0c;说白了就是希望你规范使用变量名。 形参原则上数组函数内部的临…

常用的操作系统知识

为什么要有操作系统 现代计算机系统是由一个或者多个处理器&#xff0c;主存&#xff0c;磁盘&#xff0c;打印机&#xff0c;键盘&#xff0c;鼠标显示器&#xff0c;网络接口以及各种其他输入&#xff0c;输出设备组成的复杂系统&#xff0c;每位程序员不可能掌握所有系统实现…

vue --- 使用中央事件总线(bus)实现跨组件通信

使用Bus实现跨组件传输须注意以下3点: 1.需要创建一个空的Vue实例(bus),来作为中间站 2.使用bus.emit来发送事件3.使用bus.emit来发送事件 3.使用bus.emit来发送事件3.使用bus.on来监听事件(在钩子created中监听) 代码如下: <!DOCTYPE html> <html> <head>…

Execution Order of Event Functions, unity 3d 事件函数的执行顺序

vs_Community.exe --layout "F:\linson\vs2017 comm\offline" --lang zh-CN 学习unity3d&#xff0c;感觉事件顺序很重要。就翻译一下官方文档吧。 Execution Order of Event Functions 事件函数的执行顺序 In Unity scripting, there are a number of event functio…

ES6-3 let进阶、const、全部变量与顶层对象

一 const 1. 定义常量 1.1 引入模块时 const test require(http)1.2 定义时必须赋值(初始化)且不可修改 const a; // Uncaught SyntaxError: Missing initializer in const declaration若赋值为原始值&#xff0c;不可修改若赋值为引用值&#xff0c;对于的地址不可修改&a…