| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 浅谈HTTP与HTTPS -> 正文阅读 |
|
[网络协议]浅谈HTTP与HTTPS |
前言----密码学基础在正式了解HTTP与HTTPS之前,我们需要先了解一些密码学的知识。 对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。 对称加密中用到的密钥叫做私钥,私钥表示个人私有的密钥,即该密钥不能被泄露。 非对称加密:非对称加密也叫做公钥加密。非对称加密与对称加密相比,其安全性更好。对称加密的通信双方使用相同的密钥,如果一方的密钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。 被公钥加密过的密文只能被私钥解密,过程如下: 由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。 引用于:https://www.jianshu.com/p/14cd2c9d2cd2 一、HTTP和HTTPS的基本概念1.1 HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 1.2 HTTPS (Hyper Text Transfer Protocol Secure)HTTPS是由SSL(Secure Sockets Layer 安全套接层)+HTTP 构建的可进行加密传输、身份认证的网络协议。是以安全为目标的HTTP通道,是HTTP的安全版。 二、HTTP和HTTPS的区别
三、HTTP与HTTPS的工作原理3.1 HTTP的工作原理HTTP由请求和响应构成,是一个标准的客户端服务器模型(C/S)。HTTP永远都是客户端发起请求,服务器回送响应。
3.2 HTTPS的工作原理HTTPS通信时,首先建立SSL层的连接,客户端将SSL版本号和加密组件发到服务器端,服务器端收到后,对SSL版本号和加密组件进行匹配,同时将CA证书及密钥发送到客户端。客户端对证书进行验证,验证通过后使用非对称加密对数据通信时的密钥进行协商。协商后得到一致的对称加密密钥。然后使用对称加密算法进行TCP连接,后续的过程与HTTP的过程一致。三次握手,数据交换,四次挥手,通信结束。 过程如下:
四、HTTPS的优点与缺点4.1 优点
4.2 缺点
引用于:https://blog.csdn.net/JAck_chen0309/article/details/105020259 五、HTTP 消息结构5.1 客户端请求消息客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。 5.2 服务器响应消息HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。 六、HTTP 请求方法根据 HTTP 标准,HTTP 请求可以使用多种请求方法。 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。 HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
虽然 HTTP 的请求方式有 8 种,但是我们在实际应用中常用的也就是 get 、 post、put和delete。 七、HTTP状态码当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP状态码的英文为HTTP Status Code。 下面是常见的HTTP状态码:
HTTP状态码分类
八、总结HTTP的应用在web开发中有着举足轻重的地位,优秀的web开发人员应该有着充沛的HTTP知识。要想充分理解与使用HTTP相关的知识,还是需要时间的积累与实战的经验支持,任重而道远。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 13:07:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |