< 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >

简介: 在前端开发中,是和浏览器打交道最为频繁的行业之一。但是大部分卷王们,可能仅仅是知道如何使用浏览器,只是知道 URL 跳转到浏览器变成一个完整的网页。 本篇文章将讲述 什么是HTTP、 HTTP 和 HTTPS的区别 及 URL 是如何渲染到页面。那么到这里,肯定会有人问: 那我们为什么要学习这个呢 ? 问得好,这个分为两方面: 一是学习上述内容,能够厚实我们的理论基础。有些内容,虽然用的不多,但是技多不压身,道理懂吧? 二是学习这个,对我们后续的性能优化、排查浏览器上某些错误 的能力都有提升!

👉 前言

在前端开发中,是和浏览器打交道最为频繁的行业之一。但是大部分卷王们,可能仅仅是知道如何使用浏览器,只是知道 URL 跳转到浏览器变成一个完整的网页。 本篇文章将讲述什么是 HTTPHTTP 和 HTTPS的区别URL 是如何渲染到页面

那么到这里,肯定会有人问: 那我们为什么要学习这个呢 ? 问得好,这个分为两方面: 一是学习上述内容,能够厚实我们的理论基础。有些内容,虽然用的不多,但是技多不压身,道理懂吧? 二是学习这个,对我们后续的性能优化排查浏览器上某些错误 的能力都有提升!

🗯️ 废话不多说,开始今天的卷王历程!


👉 什么是 HTTP ?什么是 HTTPS ?

> 基本概念

名称 HTTP HTTPS
中文名 超文本传输协议 超文本传输安全协议
外文全名 Hyper Text Transfer Protocol Hyper Text Transfer Protocol over SecureSocket Layer
工作层 应用层 应用层
作用 规定WWW服务器与浏览器之间信息传递规范 安全HTTP数据传输通道,保证数据安全性

首先,我们需要了解什么是协议,“ 协议 ” 字面意思,是指 用于规范协调两者及两者以上 的不同内容 或 角色之间的 关系、运输等等其他形式的约束。现实生活中也有许多,如: 就业协议、保密协议、租房的租凭协议等等。

> HTTP

超文本传输协议Hyper Text Transfer Protocol,HTTP)是一个简单的 请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。

image.png

HTTP是一个超文本传输协议,即将数据由A传到B或将B传输到A,并且 A 与 B 之间能够存放很多第三方,如: A<=>X<=>Y<=>Z<=>B

传输的数据并不是计算机底层中的二进制包,而是 完整的、有意义的数据。例如:HTML 文件、图片文件、查询结果等超文本,能够被上层应用识别。

在实际应用中,HTTP 常被用于在 Web浏览器网站服务器 之间传递信息,以明文方式发送内容,不提供任何方式的数据加密。

特点如下

  • 支持客户 / 服务器模式;

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快;

  • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记;

  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间;

  • 无状态:HTTP协议无法根据之前的状态进行本次的请求处理;

> HTTPS

超文本传输安全协议(Hyper Text Transfer Protocol over SecureSocket Layer, 简称:HTTPS ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。
HTTPS 在HTTP 的基础下加入SSLHTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSLHTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTPTCP 之间)。

image.png

在上述介绍 HTTP 中,了解到 HTTP 传递信息是以明文的形式发送内容,这并不安全。而 HTTPS 出现正是为了解决 HTTP不安全 的特性

为了保证这些隐私数据能加密传输,让HTTP运行安全的SSL/TLS协议上,即 HTTPS = HTTP + SSL/TLS,通过 SSL证书 来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。

SSL 协议位于 TCP/IP 协议与各种应用层协议之间,浏览器和服务器在使用 SSL 建立连接时需要选择一组恰当的加密算法来实现安全通信,为数据通讯提供安全支持。

流程图如下所示:
image.png

💬 流程步骤:

  1. 首先客户端通过URL访问服务器建立SSL连接
  2. 服务端收到客户端请求后,会将网站支持的证书信息(证书中包含公钥)传送一份给客户端
  3. 客户端的服务器开始协商SSL连接的安全等级,也就是信息加密的等级
  4. 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站
  5. 服务器利用自己的私钥解密出会话密钥
  6. 服务器利用会话密钥加密与客户端之间的通信

👉 HTTP 和 HTTPS 的区别

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理,相对更安全
  • HTTP 和 HTTPS 使用连接方式不同,默认端口也不一样,HTTP是80,HTTPS是443
  • HTTPS 由于需要 设计加密 以及多次握手,导致性能方面不如 HTTP。
  • HTTPS需要SSL,SSL 证书需要花钱,成本相较于 HTTP 大很多,特别是功能越强大的证书费用越高。

👉 URL渲染到页面的过程

既然了解到HTTP的知识,那么自然要讲到URL渲染到页面的过程。具体流程如下:

  1. URL输入:用户在浏览器的地址栏中输入URL,并按下回车键。

  2. 浏览器解析URL:浏览器首先会解析URL,确定协议(如http://或https://)、域名(如www.example.com)和可能的路径、查询参数等。

  3. DNS解析:浏览器会查询本地缓存或向DNS服务器发送请求,以获取域名对应的IP地址。
    如果浏览器缓存中有该域名的IP地址,则直接使用缓存中的IP;否则,会向DNS服务器发送解析请求。DNS服务器返回域名对应的IP地址给浏览器。

  4. TCP握手:浏览器使用IP地址和端口号(默认为80或443)与服务器建立TCP连接。
    TCP握手包括三个阶段:SYN(同步)包发送、SYN-ACK(同步确认)包返回、ACK(确认)包发送。这三个阶段确保双方能够建立可靠的连接。

  5. 发送HTTP请求:浏览器构建HTTP请求报文,包括请求方法(如GET、POST)、URL、请求头(如User-Agent、Accept-Language等)以及可能的请求体(如POST请求的表单数据)。

    浏览器通过已建立的TCP连接将HTTP请求发送给服务器。

  6. 服务器处理请求:服务器接收到HTTP请求后,根据请求方法和URL路径找到对应的处理程序。
    服务器可能需要查询数据库、执行计算或调用其他服务来生成响应数据。

  7. 返回HTTP响应:服务器构建HTTP响应报文,包括状态码(如200 OK、404 Not Found等)、响应头(如Content-Type、Content-Length等)以及响应体(即实际的页面内容)。

    服务器通过TCP连接将HTTP响应发送回浏览器。

  8. 浏览器接收并解析响应:浏览器接收到HTTP响应后,首先检查状态码以确定请求是否成功。
    如果状态码表示成功(如200 OK),浏览器会继续解析响应头,了解响应内容的类型、大小等信息。

    浏览器解析响应体中的HTML代码,并构建DOM(文档对象模型)树。

  9. 浏览器渲染页面:浏览器根据DOM树和可能的CSS样式信息构建渲染树。
    浏览器进行布局计算,确定每个元素在页面上的位置和大小。
    浏览器进行绘制操作,将页面内容渲染到屏幕上。

  10. 页面加载完成:当所有资源(如图片、脚本等)都加载完成且页面渲染完毕后,用户就可以看到完整的网页内容了。

具体流程可参考大佬博客 点击跳转

🔔 以下HTML页面渲染的流程图

image.png


📑 参考文献

相关文章
|
2月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
84 18
|
2月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
89 1
|
2月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
247 20
|
2月前
|
缓存 搜索推荐 CDN
HTTP缓存策略的区别和解决的问题
总的来说,HTTP缓存策略是一种权衡,需要根据具体的应用场景和需求来选择合适的策略。理解和掌握这些策略,可以帮助我们更好地优化网页性能,提高用户的浏览体验。
69 11
|
3月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
190 3
|
4月前
|
数据采集 缓存 负载均衡
动态HTTP代理与静态HTTP代理的区别及HTTP代理的常见用途与类型
HTTP代理在网络通信中扮演重要角色,优化数据传输并提供隐私保护和访问控制。本文对比动态与静态HTTP代理,探讨其特点、优劣势及适用场景。静态代理地址固定,适合稳定环境;动态代理灵活切换服务器,增强隐私保护。此外,介绍HTTP代理的常见用途(如缓存加速、匿名浏览、绕过限制等)及类型(透明、普匿、匿名、高匿、正向、反向代理),帮助用户根据需求选择合适的代理方式。最后提醒用户遵守法律法规,确保安全使用。
161 1
|
5月前
|
缓存 安全 网络安全
代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
本文详细介绍了HTTP、HTTPS和SOCKS5三种代理协议的特点、优缺点以及适用场景。通过对比和分析,可以根据具体需求选择最合适的代理协议。希望本文能帮助您更好地理解和应用代理协议,提高网络应用的安全性和性能。
224 17
|
5月前
|
网络协议 安全 网络安全
HTTP与HTTPS协议入门
HTTP协议是互联网的基石,HTTPS则是其安全版本。HTTP基于TCP/IP协议,属于应用层协议,不涉及数据包传输细节,主要规定客户端与服务器的通信格式,默认端口为80。
141 25
HTTP与HTTPS协议入门
|
6月前
|
安全 搜索推荐 网络安全
HTTPS与HTTP:区别及安全性对比
HTTP和HTTPS是现代网络通信中的两种重要协议。HTTP为明文传输,简单但不安全;HTTPS基于HTTP并通过SSL/TLS加密,确保数据安全性和完整性,防止劫持和篡改。HTTPS还提供身份验证,保护用户隐私并防止中间人攻击。尽管HTTPS有额外的性能开销和配置成本,但在涉及敏感信息的场景中,如在线支付和用户登录,其安全性优势至关重要。搜索引擎也更青睐HTTPS网站,有助于提升SEO排名。综上,HTTPS已成为大多数网站的必然选择,以保障用户数据安全和合规性。
410 1
|
7月前
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
2494 8

热门文章

最新文章