【计算机网络】HTTP 与 HTTPS ( HTTPS 简介 | HTTP 通信过程 )
文章目录
一、HTTPS 简介
HTTPS 协议就是在 HTTP 协议的基础上 , 增加了一个 SSL 外壳 , 对 HTTP 协议进行加密 ;
HTTP 协议传输数据时 , 传输的就是 明文 , 如果抓包或者截获后 , 可以直接看到传输的数据内容 ;
HTTPS 协议在网络传输时 , 传输的内容是 加密后的内容 , 不是明文 , 更不容易被截获 ;
HTTP 特点 :
① 无状态 : 服务器 不存储客户端的状态 , 客户端每次请求服务器 , 都当做新的客户端第一次请求 ; 爬虫可以随意无限次地抓取网站信息 ;
② 无连接 : 客户端每次请求服务器端 , 数据传授完毕后 , 连接断开 ; HTTP 是基于 TCP 协议的 , 每次连接需要
次握手 , 每次断开连接需要
次挥手 , 频繁进行连接断开操作 , 繁琐 , 延迟高 , 空耗系统资源 ;
③ 安全性差 : 传输的数据是 明文 , 无法确保数据保密性 ; 客户端和服务器端不验证对方身份 , 无法确保数据完整性 ;
④ 快速 , 灵活 , 高效 ;
HTTPS 特点 :
① 安全性强 : 传输数据加密 , 中间截获 , 无法进行解密 ;
② 身份验证 : 通过 SSL 认证证书 , 确认通信的 客户端 与 服务器 双方的身份 ;
③ 数据完整性 : 加密后的数据能防止被截获修改 ;
二、HTTP 通信过程
发送 HTTP 请求 , HTTP 基于 TCP , 因此需要先建立 TCP 连接 ;
① 建立 TCP 连接 : TCP 连接的建立需要
次握手机制 ;
- 客户端 -> 服务器端 : 你能听到我说话吗 ?
- 服务器端 -> 客户端 : 我能 , 你能听到我说话吗 ?
- 客户端 -> 服务器端 : 我能 , 开始发送数据 ;
② 客户端浏览器向 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 连接 :
次挥手 ;
相关文章
- HTTP 和 HTTPS 的区别(面试常考题)「建议收藏」
- LiveNVR监控流媒体Onvif/RTSP功能-RTSP/RTMP/HLS/HTTP-FLV视频文件流转成GB28181级联至海康宇视大华等第三方国标平台政务
- Linux压测工具(http_load,webbench,ab,siege)
- 1-STM32+Air724UG远程升级篇OTA(自建物联网平台)-STM32通过Air724UG使用http或https下载程序文件(支持外部flash备份),升级程序(单片机程序轮训检查更新)
- linux下svn配置http访问「建议收藏」
- nginx转发https到http
- 计算机网络 — HTTP协议 和 HTTPS[通俗易懂]
- html content属性_HTTP函数
- golang封装http get函数请求并且携带header头信息
- HTTPS是什么意思?HTTP与HTTPS的区别,以及HTTPS的配置方法
- 网络安全概述: 从HTTP到HTTPS的变进
- 如何利用python对HTTP代理进行自动化维护?
- 八、《图解HTTP》 - HTTPS
- golang源码分析:http代理和https代理
- HTTP状态码详解
- [大家的项目] 基于rust的,gRPC动态代代理,无需proto文件自动http转gRPC
- 【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )
- nginx实现http自动跳转https
- 什么是声明式HTTP客户端
- python通过urllib2提交http post请求详解编程语言
- Java通过http请求保存远程图片至本地详解编程语言
- http错误代码提示详解编程语言
- 服务器一步步教你搭建Linux HTTP服务器(linux搭建http)
- 简析HTTPS和HTTP的区别详解编程语言
- Linux下HTTP抓包实战精要(http抓包linux)
- HTTP 推送
- 数据库使用HTTP连接Oracle数据库的简单操作(http连接oracle)
- 熟悉Redis,HTTP抓包,防止网络安全漏洞(redis,http抓包)