文章目录

  • 一、HTTPS 简介
  • 二、HTTP 通信过程

一、HTTPS 简介


HTTPS 协议就是在 HTTP 协议的基础上 , 增加了一个 SSL 外壳 , 对 HTTP 协议进行加密 ;

HTTP 协议传输数据时 , 传输的就是 明文 , 如果抓包或者截获后 , 可以直接看到传输的数据内容 ;

HTTPS 协议在网络传输时 , 传输的内容是 加密后的内容 , 不是明文 , 更不容易被截获 ;

HTTP 特点 :

① 无状态 : 服务器 不存储客户端的状态 , 客户端每次请求服务器 , 都当做新的客户端第一次请求 ; 爬虫可以随意无限次地抓取网站信息 ;

② 无连接 : 客户端每次请求服务器端 , 数据传授完毕后 , 连接断开 ; HTTP 是基于 TCP 协议的 , 每次连接需要 333 次握手 , 每次断开连接需要 444 次挥手 , 频繁进行连接断开操作 , 繁琐 , 延迟高 , 空耗系统资源 ;

③ 安全性差 : 传输的数据是 明文 , 无法确保数据保密性 ; 客户端和服务器端不验证对方身份 , 无法确保数据完整性 ;

④ 快速 , 灵活 , 高效 ;

HTTPS 特点 :

① 安全性强 : 传输数据加密 , 中间截获 , 无法进行解密 ;

② 身份验证 : 通过 SSL 认证证书 , 确认通信的 客户端 与 服务器 双方的身份 ;

③ 数据完整性 : 加密后的数据能防止被截获修改 ;

二、HTTP 通信过程


发送 HTTP 请求 , HTTP 基于 TCP , 因此需要先建立 TCP 连接 ;

① 建立 TCP 连接 : TCP 连接的建立需要 333 次握手机制 ;

  • 客户端 -> 服务器端 : 你能听到我说话吗 ?
  • 服务器端 -> 客户端 : 我能 , 你能听到我说话吗 ?
  • 客户端 -> 服务器端 : 我能 , 开始发送数据 ;

② 客户端浏览器向 Web 服务器发送请求报文 : 请求头命令就是下图 " 请求行 " 信息 ; 如

GET / HTTP/1.1

③ 客户端浏览器发送请求头信息 : 请求头信息就是下图中的 " 请求头部 " 数据 , 由若干键值对组成 ; 如下示例

Host: rucfd.ruc.edu.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
If-None-Match: "b7f-5b575595fe630-gzip"
If-Modified-Since: Wed, 02 Dec 2020 06:28:18 GMT

完整的请求报文信息 :

GET / HTTP/1.1
Host: rucfd.ruc.edu.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
If-None-Match: "b7f-5b575595fe630-gzip"
If-Modified-Since: Wed, 02 Dec 2020 06:28:18 GMT

④ Web 服务器向客户端浏览器会送应答第一部分 : 只回送 " 响应行 " 数据 ; 如 :

HTTP/1.1 200 OK

⑤ Web 服务器向客户端浏览器回送应答第二部分 : 回送 " 响应头部 " 信息 ; 如 :

Server: none
Date: Mon, 21 Jun 2021 05:15:56 GMT
Content-Type: text/html
Content-Length: 1104
Connection: keep-alive
Last-Modified: Wed, 02 Dec 2020 06:28:18 GMT
ETag: "b7f-5b575595fe630-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip

响应报文完整示例 :

HTTP/1.1 200 OK
Server: none
Date: Mon, 21 Jun 2021 05:15:56 GMT
Content-Type: text/html
Content-Length: 1104
Connection: keep-alive
Last-Modified: Wed, 02 Dec 2020 06:28:18 GMT
ETag: "b7f-5b575595fe630-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip

⑥ Web 服务器向客户端浏览器回送应答第三部分 : 回送用户请求的实际数据 , 在之前 " 响应头部 " 中的 Content-Type 中设置有用户请求的类型 , 是 text/html 类型 , 这里会送的就是该 html 文本数据 ;

Content-Type: text/html

⑦ Web 服务器关闭 TCP 连接 : 444 次挥手 ;

【计算机网络】HTTP 与 HTTPS ( HTTPS 简介 | HTTP 通信过程 )相关推荐

  1. 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)

    HTTPS SSL / TLS OpenSSL HTTPS的成本 HTTPS的通信过程 TLS 1.2 的连接(ECDHE密钥交换算法) ① Client Hello ② Server Hello ③ ...

  2. Nginx 配置 SSL 及 HTTPS 协议通信过程

    一.前言 基础知识 1.1 公钥密码体制(public-key cryptography) 公钥密码体制分为三个部分,公钥.私钥.加密解密算法,它的加密解密过程如下: 加密:通过加密算法和公钥对内容( ...

  3. 【计算机网络】--- HTTP与HTTPS协议详解

    HTTP与HTTPS协议详解 一.URL 二.HTTP协议 三.HTTPS协议 四.HTTP与HTTPS区别(重中之重) 五.如何正确选择HTTP协议和HTTPS协议 引言:当我们打开一个网页时,奇妙 ...

  4. 从wireshake分析http和https的通信过程

    参考文章: Wireshark基本介绍和学习TCP三次握手 [技术流]Wireshark对HTTPS数据的解密 Wireshark/HTTPS Journey to HTTP/2 以TCP/IP协议为 ...

  5. CA认证的原理和流程以及https完整通信过程

    故事引入--什么是CA证书 看过一些博客,写的比较形象具体. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有人都不认识他,他咋办 ...

  6. 【基础补充】http/https协议及通信过程

    目录 1 HTTP协议与HTTPS协议 1.1 HTTP协议概述 1.2 HTTPS协议概述 1.3 HTTPS与HHTP对比 2 通信过程 3 URI和URL的区别 4 报文组成 4.1 请求 4. ...

  7. 【校招VIP】计算机网络之HTTP和HTTPS

    考点介绍: HTTP和HTTPS协议是校招高频考点之一,HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需 ...

  8. HTTPS加密及通信过程

    Http & Https Http: 超文本传输协议,位于应用层,常用于web浏览器和服务器之间的通信. Https: 位于安全层上的HTTP,在Http下面提供了一层传输级的密码安全层(SS ...

  9. SSL/TLS协议的运行原理浅析—https通信过程及CA证书诠释

    互联网是开放环境,通信双方都是未知身份,这为协议的设计带来了很大的难度.而且,协议还必须能够经受所有匪夷所思的攻击,这使得SSL TLS协议变得异常复杂.理清https原理与CA证书体系 互联网的通信 ...

最新文章

  1. P1108 低价购买
  2. 机器人学习--栅格地图(occupancy grid map)构建(部分代码解析)
  3. 【NLP】毕设学习笔记(九)长短期神经网络LSTM
  4. Build Path
  5. 怎样提高文章原创度,被快速收录?
  6. 1、RFID标签介绍
  7. FLUENT中初识UDF——UDF的简单使用(1)
  8. SONiC(3):手动运行docker ptf
  9. 健身教练教你跑步减肥的正确方法
  10. java+添加分割符_如何给数字添加分隔符
  11. android:绘图
  12. 右键新建缺少word、excel选项问题处理
  13. 毕业生--参考文献查询网站及方法(中文核心及以上)
  14. 谷歌账户二次验证_为您的Google帐户和Microsoft帐户设置双重身份验证
  15. 优秀文章及学习网站之收集手册
  16. 礼品卡配合U盘,美国一公司遭受BadUSB真实攻击
  17. Tsukinai的第七十四个程序(输出字符串中的元音字母)
  18. 退一步海阔天空——不算结局的结局
  19. 笔记本出现数字小键盘怎么解决,出现方形带斜杠123
  20. Git上传文件代码到GitHub

热门文章

  1. [全]php-redis函数使用
  2. hadoop入门学习系列之三mysq+php+mysqladmin安装
  3. 约瑟夫环 单向循环链表实现
  4. Springmvc与Struts2不同
  5. asp.net如何读取Excel文件
  6. WPS文本域替换不完全的问题
  7. 关于C#中timer类 在C#里关于定时器类就有3个
  8. SpringCloud学习(七)高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)
  9. mybatis学习(十一)——springmvc++spring+mybatis整合
  10. Apache OFBIZ高速上手(二)--MVC框架