【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )

简介: 【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP/1.1 与 HTTP/2 对比 | HTTP 报文格式 )

文章目录

前言

一、HTTP 发展过程

二、HTTP/1.1 与 HTTP/2 对比

三、HTTP 报文格式

前言

目前如果在浏览器中访问 http 网站 , 浏览器会提示不安全 , 如下图 :

image.png



如果访问 https 网站 , 浏览器显示安全图标 , 如下图 :


image.png


当前几乎所有的网站 , 都使用 HTTPS 协议 ;


HTTPS 是在 HTTP 的基础上进行的强化 ;


HTTPS = HTTP + SSL ;






一、HTTP 发展过程


HTTP 协议是基于 TCP/IP 的超文本传输协议 , 发展历史如下 :


HTTP/0.9 : 1991 19911991 年 , 只能进行 GET 请求 , 不能传输数据包 , 规定客户端服务器通信格式 ; ( 不是正式标准 )

HTTP/1.0 : 1996 19961996 年 , 增加了 PUT , PATCH , HEAD , OPTIONS , DELETE 等命令 , 不再限制传输内容的格式 ; ( 正式标准 )

HTTP/1.1 : 1997 19971997 年 , 支持 长连接 , 带宽节约 , HOST 域 , 管道机制 , 分块传输编码 等机制 ; ( 目前使用最广泛的版本 )

HTTP/2 : 2015 20152015 年 , 支持 多路复用 , 服务器推送 , 头信息压缩 , 二进制协议 等机制 ; ( 逐步推进覆盖市场 )

目前使用最广泛的版本是 HHTP/1.1 , 但是 2015 20152015 年后 , HTTP/2 出现 , 逐渐覆盖市场 ;






二、HTTP/1.1 与 HTTP/2 对比


HTTP/1.1 请求网页流程 :


① 建立 HTTP 连接 ;

② 客户端发送 GET 请求 , 请求服务器端的 index.html 文件 ;

③ 服务器端响应 , 返回 html 文件信息 ;

④ 客户端发送 GET 请求 , 请求 style.css 文件 ;

⑤ 服务器端响应 , 返回 style.css 文件

⑥ 客户端发送 GET 请求 , 请求服务器端的 scripts.js 文件 ;

⑦ 服务器端响应 , 返回 scripts.js 文件 ;

⑧ 客户端渲染界面

⑨ 关闭 HTTP 连接 ;

弊端 : 每次只能请求网页的一个文件 , css 和 js 脚本需要分两次请求 , 客户端才能获取到完整的文件 ;

image.png



HTTP/2 多路复用机制 : 通过 1 11 个 HTTP/2 发起多重 请求/响应 信息 , 多个请求共享同一个 TCP 连接 ;


① 建立 HTTP 连接 ;

② 客户端发送 GET 请求 , 请求服务器端的 index.html 文件 ;

③ 服务器端响应 , 返回 html 文件信息 ;

④ 客户端发送 GET 请求 , 请求 style.css 和 scripts.js 文件 ;

⑤ 服务器端响应 , 返回 style.css 和 scripts.js 文件

⑥ 客户端渲染界面

⑦ HTTP 连接继续保持打开状态 ;





三、HTTP 报文格式


客户端要访问某网站 , 向服务器端发送的报文是 请求报文 ;


请求报文格式 : CRLF 是回车换行 ;


image.png



服务器端 接收 到客户端的请求报文 , 响应客户端的请求 , 向客户端发送的报文是 响应报文 ;


响应报文格式 : CRLF 是回车换行 ;


image.png



请求报文 与 响应报文 真实案例分析 :


这里以访问人大网站 ( http://rucfd.ruc.edu.cn/ ) 为例 ;


在浏览器输入上述网址 , 按下 F12 键 , 进入调试模式 , 刷新网页 , 查看 HTTP 请求与响应过程 ;


image.png



请求头 :


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 ;


GET / HTTP/1.1


首部行 : 请求行下面的都是首部行 , 每个键值对后面跟着一个回车换行 ;



响应头 :


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


状态行 : 版本号 HTTP/1.1 , 状态码 200 , 短语 OK ;


HTTP/1.1 200 OK


首部行 : 剩余的都是首部行 , 每个键值对后面跟着一个回车换行 ;


目录
相关文章
|
4天前
|
安全 应用服务中间件 网络安全
简单比较 http https http2,我们要如何把http升级为https
【9月更文挑战第13天】本文对比了HTTP、HTTPS和HTTP/2的特点与适用场景。HTTP以明文传输,适合低安全要求的环境;HTTPS通过SSL/TLS加密,适用于电子商务等安全要求高的场景;HTTP/2采用二进制格式和多路复用,适合高性能Web应用。文章还详细介绍了将HTTP升级为HTTPS的步骤,包括申请和安装SSL证书、配置Web服务器、重定向HTTP流量到HTTPS以及测试HTTPS功能。升级到HTTPS可提高数据安全性和用户信任度。
34 13
|
5天前
|
安全 网络安全 数据安全/隐私保护
HTTP与HTTPS协议区别及应用场景
在互联网高速发展的今天,HTTP与HTTPS作为数据传输的基石,作用至关重要。HTTP允许客户端与服务器间传输超文本文档,但其数据传输过程未加密,存在安全隐患;HTTPS则在此基础上加入了SSL/TLS协议,实现了数据加密传输,增强了安全性,广泛应用于电子商务、网上银行、政府网站及社交媒体平台等涉及敏感信息传输的领域,有效保护了用户隐私和数据安全。随着网络安全意识提升,HTTPS正逐渐成为主流。
|
2月前
|
缓存 网络协议 算法
(二)Java网络编程之爆肝HTTP、HTTPS、TLS协议及对称与非对称加密原理!
作为一名程序员,尤其是Java程序员,那必须得了解并掌握HTTP/HTTPS相关知识。因为在如今计算机网络通信中,HTTP协议的作用功不可没,无论是日常上网追剧、冲���、亦或是接口开发、调用等,必然存在HTTP的“影子”在内。尤其对于WEB开发者而言,HTTP几乎是每天会打交道的东西。
63 10
|
26天前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
27天前
|
JavaScript 前端开发 Java
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
|
1月前
|
安全 网络协议 搜索推荐
http和https分别是什么?区别是什么?
http和https分别是什么?区别是什么?
63 0
|
1月前
|
运维 安全 网络协议
运维.索引引擎ElasticSearch.记录一个小异常:received plaintext http traffic on an https channel
运维.索引引擎ElasticSearch.记录一个小异常:received plaintext http traffic on an https channel
106 0
|
1月前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
2月前
|
监控 安全 搜索推荐
http和https的区别是什么?
在互联网安全日益成为焦点的今天,使用HTTPS不仅是一种趋势,更是网站运营的基本要求之一。它不仅能够保护用户隐私和数据安全,还能提升网站的可信度和搜索引擎排名。因此,无论是个人网站还是企业级应用,都应当考虑使用HTTPS来保护用户和数据的安全,迈向一个更加安全和可靠的网络环境。
53 0
|
Web App开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
TCP洪水攻击(SYN Flood)的诊断和处理 Posted by  海涛  on 2013 年 7 月 11 日 Tweet1 ​1. SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood。
980 0