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

本文涉及的产品
云解析 DNS,旗舰版 1个月
密钥管理服务KMS,1000个密钥,100个凭据,1个月
.cn 域名,1个 12个月
简介: 在前端开发中,是和浏览器打交道最为频繁的行业之一。但是大部分卷王们,可能仅仅是知道如何使用浏览器,只是知道 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


📑 参考文献

相关文章
|
1月前
|
缓存 安全 网络协议
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
101 2
HTTP和HTTPS的区别有哪些?
|
19天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
34 3
|
7天前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
11天前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
|
18天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
18天前
|
缓存 安全 API
http 的 get 和 post 区别 1000字
【10月更文挑战第27天】GET和POST方法各有特点,在实际应用中需要根据具体的业务需求和场景选择合适的请求方法,以确保数据的安全传输和正确处理。
|
18天前
|
网络协议 网络安全 API
Http和Socks的区别?
HTTP 和 SOCKS 协议各有其优势和应用场景。在选择使用哪种协议时,应根据具体需求和应用环境做出决定。HTTP 适用于 Web 服务相关的通信,而 SOCKS 则更适用于需要通用代理功能和复杂网络环境的场景。了解它们的区别和特点,有助于在不同的网络应用中做出最佳选择。
25 1
|
20天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
19 3
|
21天前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
36 4
|
20天前
|
网络协议 API 数据格式
HTTP 和 TCP 协议的主要区别
【10月更文挑战第25天】HTTP 和 TCP 在网络通信中扮演着不同的角色,各自具有独特的功能和特点,它们相互配合,共同为实现网络应用的各种需求提供了基础支持。
下一篇
无影云桌面