目录
-
网络当中的通信:端口ip协议 tcp/ip协议 传输过程我们使用tcp协议。tcp可靠的,安全的传输协议。例如三次握手四次挥手。
-
ip:每一台主机在互联网中都有一个唯一的标识(ip地址),区别在网络中的不同主机和用户
-
ip格式都是固定的,点分十进制,192.168.41.10
-
互联网当中与主机实现通信,靠的就是ip地址
-
ip端口:ip+端口的形式。tcp协议通信,ip+端口。端口可以用来区别不同应用;ssh:22 http:80
-
ip地址不好记,所以引申出域名。
-
dns域名解析:把域名解析为ip地址。访问域名,实质上还是在访问ip地址。
-
dns解析的三种方式,以及优先级
-
修改本地hosts文件
/etc/hosts
(linux);windows 的hosts在c盘下。
本地解析速度最快,ip地址和域名之间形成映射关系
-
修改系统DNS服务器
- /etc/resolv.conf
由运营商提供的dns解析的服务端ip地址。
可以有多个。配置完成后无需重启任何服务器
在文件中,会看到类似以下的内容
nameserver 8.8.8.8
nameserver 8.8.4.4
这表示系统当前使用的DNS服务器是Google的公共DNS服务器。可以根据需要修改这些行,将其更改为其他DNS服务器的IP地址。例如:
nameserver 1.1.1.1
nameserver 1.0.0.1
保存更改退出
-
修改网卡配置文件中的dns地址,
- 也可以有多个 /etc/sysconfig/network-scripts/ifcfg-ens33
-
在配置文件中找到
DNS1
和DNS2
行,如果没有,则可以添加它们。例如:Plain Text DEVICE=ens33 TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.2 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
-
保存并关闭文件。
应用更改
在修改完成后,需要重新启动网络服务以应用更改。使用以下命令:
systemctl restart network # 对于CentOS/RHEL
优先级:本地hosts-网卡配置文件-/ect/resolv.conf(运营商)
分布式和集群
分布式计算:
-
定义: 分布式计算是将一个计算任务拆分为多个子任务,这些子任务可以在不同的计算机或节点上并行执行。把计算机系统或者应用程序分别部署正在多台独立的计算机或者服务器上。计算记或者服务器通过网络互相通信和写作。共同完成特定的任务或者提供服务。
-
特点:
- 分散性: 不同的计算节点分散在网络中的不同位置,可以是物理上的远距离,也可以是逻辑上的独立节点。
-
独立性: 各个节点相对独立,它们可以在没有中心控制的情况下协同工作。
-
通信: 节点之间需要进行通信以协调任务和共享信息。
-
3.例子: 分布式数据库、分布式文件系统、分布式计算框架(如Hadoop、Spark)。
集群
-
定义: 集群是分布式的扩展,集群是将多台计算机组合在一起,通过网络互连,以实现共同工作。这些计算机被称为集群节点。建立在分布式的基础之上。在每个工作节点上,用多台服务器或者计算机连接在一起,形成一个单一的计算资源池。这些计算机通过网络连接,共享任务和资源负载。实现高性能和高可用。集群当中的服务器一般都是由相同规格的计算机组成。运行相同的应用程序或者服务。
-
特点:
-
紧密连接: 集群中的计算机通常物理上或逻辑上相邻,它们之间的通信更为直接和高效。
-
协同工作: 集群中的节点通过某种形式的中心控制或协同工作,共同完成任务。
-
3.例子: Web服务器集群、数据库集群、计算集群等。
区别总结:
-
地理位置: 分布式可以在地理上进行分布,而集群中的节点通常更接近。
-
组织结构: 分布式的组织相对较松散,节点独立工作;而集群有一定的组织结构,通常由中心控制或协同工作,形成高性能(提高处理速度)高可用(实现冗余)负载均衡(在最大的分配上,实现每台机器都可以参与到工作中)。
需要注意的是,分布式和集群并不是互斥的概念,它们可以结合使用,即构建一个分布式集群,其中节点分布在不同的地理位置但通过网络连接起来,以实现高性能和高可用性。
域名
- 域名结构: 一个域名通常由多个部分组成,这些部分以点号
.
分隔。域名结构是从右向左逐级划分的,通常包括以下部分:
-
根域:根域是整个域名系统的起点,所有的域名层级结构都从这里开始。
-
顶级域名(TLD,Top-Level Domain):最右边的部分,例如.com、.org、.net、.gov、.edu等。
-
二级域名(SLD,Second-Level Domain):位于TLD之前,通常是你选择的主要标识,如google、wikipedia等。
-
子域名(Subdomain):可选部分,可以用于进一步划分域名,如www、blog等。
-
2. 域名解析: 域名解析是将域名转换为对应的IP地址的过程。这是通过域名系统(DNS,Domain Name System)完成的。DNS是一个分布式的系统,它存储了全球范围内的域名和相应的IP地址之间的映射关系。当您在浏览器中键入一个域名时,计算机会向DNS服务器发送查询以获取域名对应的IP地址,然后连接到该IP地址以访问网站或资源。
html
超文本标记语言。是一种规范,也是一种标准。通过标记符号来标记要显示的网页中的各个部分。本事
以下是一些HTML的
基本概念和常见元素:
- HTML文档结构: HTML文档通常由以下基本结构组成:
<!DOCTYPE html>
<html>
<head>
<title>页面标题</title>
</head>
<body>
<!-- 页面内容在这里 -->
</body>
</html>
-
DOCTYPE 声明: 告诉浏览器使用哪个HTML版本解析页面。
-
html 元素: 整个HTML文档的根元素。
-
head 元素: 包含有关文档的元信息,如标题、字符集等。
-
title 元素: 定义网页的标题,显示在浏览器的标题栏或标签页上。
-
body 元素: 包含页面的实际内容,如文本、图像、链接等。
-
标签(元素): HTML使用一系列标签来定义页面的各个部分。例如:
-
<p>
表示段落 -
<h1>
到<h6>
表示标题(从大到小的六个级别) -
<a>
表示链接 -
<img>
表示图像 -
<ul>
和<ol>
分别表示无序列表和有序列表 -
<li>
表示列表项
8.属性: 标签可以有属性,属性提供有关元素的额外信息。例如,在<a>
标签中,href
属性定义链接的目标URL。
下面是一个简单的例子,展示了HTML文档的基本结构和一些常见元素的使用:
<!DOCTYPE html>
<html>
<head>
<title>我的第一个HTML页面</title>
</head>
<body>
<h1>欢迎来到我的网站!</h1>
<p>这是一个简单的HTML页面示例。</p>
<a href="https://www.example.com">访问示例网站</a>
<img src="example.jpg" alt="示例图片">
</body>
</html>
此示例中,<h1>
定义了一个标题,<p>
定义了一个段落,<a>
创建了一个链接,<img>
插入了一张图片。
-
网页:纯文本格式的文件,编写的语言
-
翻译语言:浏览器翻译
-
网站:由多个网页组成的结合体
-
打开一个网站,展现的第一个页面就是网站的主页(首页)
-
-
域名:网站的访问地址
-
传输内容:http/https
web
Web 1.0:
-
时间范围: Web 1.0 主要覆盖了互联网的早期发展阶段,大致可追溯到1990年代中期至2000年前后。
-
特征:
-
静态内容: Web 1.0 主要以静态网页为主,用户主要是 passively(被动地)浏览信息,而不是直接参与内容的创造和分享。
-
单向通信: 主要是从网站向用户的单向通信,网站提供信息,用户接收信息。
-
有限的互动性: 用户交互性较弱,主要是通过点击链接和填写表单。
3.应用:
-
网站主要是提供信息和服务,例如静态网页、在线商店、新闻网站等。
-
代表性公司:Yahoo、AOL等。
Web 2.0:
-
时间范围: Web 2.0 的概念开始兴起于2000年后,并在随后的几年内逐渐成为主流。
-
特征:
-
用户生成内容: 用户不仅是信息的消费者,还是内容的创作者和分享者,如社交媒体上的用户生成的内容。
-
社交互动: 强调用户之间的互动和社交,推动社交媒体、博客等的兴起。
-
富互联网应用: 使用AJAX等技术实现更丰富、动态的用户界面和互动性。
3.应用:
-
出现了大量社交媒体平台,如Facebook、Twitter,以及博客、维基百科等。
-
强调用户参与,内容创造和分享成为互联网使用的主要特点。
4.总结:
-
Web 2.0 强调用户参与、社交互动和富互联网应用,与 Web 1.0 的静态、单向通信模式形成对比。
-
Web 2.0 的兴起标志着互联网由信息的传递阶段进入到用户创造和分享的阶段,为社交媒体和协作工具的发展奠定了基础。
总体而言,Web 1.0 和 Web 2.0 代表了互联网发展的两个阶段,从静态信息的传递到用户生成内容和社交互动。
静态页面和动态页面
静态页面:
- 内容生成:
-
静态页面的内容在服务器上预先生成,通常由网站开发者手动创建,然后以不可变的形式存储在服务器上。
-
当用户请求访问静态页面时,服务器将简单地返回存储在服务器上的固定HTML文件,不会在生成页面时进行额外的计算或数据库查询。
2.交互性:
- 静态页面通常缺乏互动性。用户只能 passively(被动地)浏览页面上的信息,而无法与页面进行实时互动,如登录、提交表单或动态更新内容。
3.更新和维护:
- 静态页面的内容是固定的,要更新页面的内容通常需要修改并重新上传静态HTML文件。这需要开发者手动干预。
4.响应速度:
- 由于内容是静态的,静态页面通常加载速度较快,因为服务器只需返回存储在文件系统中的HTML文件。
动态页面:
- 内容生成:
-
动态页面的内容是根据用户请求和其他参数实时生成的。内容通常来自数据库、外部API或其他数据源。
-
服务器使用服务器端脚本语言(如PHP、Python、Java)或JavaScript来生成页面的内容。
2.交互性:
- 动态页面具有更高的互动性。用户可以与页面进行实时互动,例如登录、提交表单、进行搜索和个性化定制内容。
3.更新和维护:
- 更新动态页面的内容相对容易,因为内容通常存储在数据库中,可以通过简单的数据输入或修改来进行更改。
4.响应速度:
- 动态页面的响应速度可能受到服务器负载和数据库查询等因素的影响,因此在某些情况下可能比静态页面加载更慢。
总之,静态页面和动态页面之间的主要区别在于内容生成和交互性。静态页面内容固定,互动性有限,而动态页面内容根据用户请求实时生成,具有更高的互动性。选择使用哪种页面类型取决于网站的需求和功能。许多网站在实践中结合了两者,以兼顾静态和动态页面的优势。
http协议
-
超文本传输协议。互联网上应用最广的网络协议。基于tcp协议的应用层传输协议。客户端和服务端之间的传输规则。
-
http是应用层上的协议,建立在传输层tcp之上。客户端和服务端进行tcp连接。
-
三次握手之后建立连接。建立连接之后发送http请求与http响应都是通过socket(端口)调用来实现数据传输
HTTP(Hypertext Transfer Protocol,超文本传输协议)是一种用于传输超媒体文档(例如 HTML)的应用层协议。它是Web中数据通信的基础,允许在Web浏览器和Web服务器之间传输数据。
特点:
-
无状态性(Stateless): HTTP协议是无状态的,即每个请求都是独立的,服务器不会存储有关客户端的任何信息。这意味着服务器在处理请求时不会考虑之前的请求,每个请求都是独立的事务。
-
支持客户/服务器模式: HTTP遵循客户/服务器模型,其中客户端是请求资源的用户代理(通常是Web浏览器),而服务器是存储和提供资源的计算机。
-
简单快速: HTTP协议设计简单且轻量,使得它能够快速传输数据。客户端向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST等。
-
灵活: HTTP协议允许传输任意类型的数据对象。正在传输的类型由Content-Type标头字段进行声明。这使得HTTP非常灵活,可以传输文本、图像、音频、视频等各种媒体类型的数据。
-
无连接(Connectionless): 每个请求和响应都是独立的,服务器在完成一次响应后即关闭与客户端的连接。这种无连接的特性意味着服务器不会维护客户端的状态信息。
-
可扩展性: HTTP是一种可扩展的协议,可以通过添加新的方法、头字段等来满足不断发展的需求。
-
基于请求-响应模型: 客户端发送一个HTTP请求,服务器收到请求后进行处理并发送回一个HTTP响应。响应包含有关请求的结果信息,包括请求的内容、状态和可能的错误信息。
-
状态码: HTTP响应中包含状态码,用于表示请求的处理结果。常见的状态码有200(成功)、404(未找到)和500(服务器内部错误)等。
HTTP协议的版本主要有HTTP/1.0、HTTP/1.1和HTTP/2。每个版本都带来了一些改进,如性能提升、连接复用、多路复用等。 HTTP/3 是基于QUIC(Quick UDP Internet Connections)协议的最新版本,旨在进一步提高性能和安全性。
HTTP连接的状态
通常由客户端和服务器之间的请求和响应的交互来确定。以下是HTTP连接中可能的一些状态:
-
打开(Open): 这是连接的初始状态。客户端与服务器成功建立连接,可以开始进行HTTP请求和响应的交互。
-
等待请求(Idle): 在这个状态下,连接是打开的,但没有请求或响应正在进行。连接保持打开状态,以便在需要时发送新的请求。
-
发送请求(Request Sent): 客户端已经发送HTTP请求给服务器,但尚未收到服务器的响应。
-
接收响应(Response Received): 客户端已经发送请求并且已经收到了服务器的响应。这表示客户端可以处理来自服务器的数据。
-
等待关闭(Waiting for Closure): 在这个状态下,客户端或服务器中的一方已经发出关闭连接的请求,但连接还没有完全关闭。这是在收到关闭请求后等待最后的确认。
-
关闭(Closed): 连接已经完全关闭。这可以是由客户端或服务器发起的,表示双方都不再发送或接收数据。
这些状态描述了HTTP连接在请求和响应之间的变化。连接的状态转换通常取决于协议版本、服务器和客户端的实现以及网络条件。在HTTP/1.1中,持久连接(Persistent Connection)的引入使得在单个连接上可以发送多个请求和响应,以减少连接建立的开销。在HTTP/2和HTTP/3中,更进一步引入了多路复用,允许并行发送多个请求和响应,以提高性能。
连接保持和会话保持
- 连接保持(Connection Keep-Alive):
-
定义: 连接保持是指在一次HTTP事务完成后,保持TCP连接处于打开状态,以便在未来的请求和响应之间重复使用。
-
作用: 通过保持连接打开,可以避免在每个HTTP请求之间重新建立TCP连接,从而减少延迟和提高性能。这对于处理多个请求时尤为重要,尤其是在浏览器与服务器之间的通信中。
四次挥手之后,并不是断开连接,而是双方进入新的tcp连接状态(Time_wait)60-120秒。大型网站时间会长一点。
time_wait:即使双方不再传输数据,但是连接并没有断开,双放继续传输数据,不需要再三次握手,可以直接再次发起数据传输。避免了频繁请求,造成资源大量占用。
2.会话保持(Session Persistence):
-
定义: 会话保持是一种机制,确保一系列相关联的用户请求都被分配到同一台后端服务器上。它通常用于负载均衡环境中,其中多个服务器共同处理用户请求。
-
作用: 通过会话保持,系统可以确保用户的会话数据(例如登录状态、购物车内容等)在多次请求之间得到保持,而不会被分配到不同的服务器上。
-
实现方式: 可以使用不同的技术实现会话保持,包括使用Cookie、IP Hashing、URL重写等。这样,用户在访问同一站点的不同页面时,会话数据可以被正确地维护在同一服务器上。
在一些情况下,连接保持和会话保持可能同时使用,以确保在连接保持的情况下,用户的会话数据仍然能够得到正确的处理。这在大型Web应用程序和负载均衡环境中是常见的做法。
http工作方式
- 建立连接:
-
客户端(通常是Web浏览器)向服务器发送一个HTTP请求以建立连接。
-
服务器监听传入的连接请求,并响应客户端的请求。
-
http协议的默认端口:80
发送请求:
-
客户端发送一个HTTP请求,其中包含请求的方法(GET、POST等)和请求的资源的URL。
-
请求头中可能包含其他信息,如用户代理(User-Agent)、Cookie等。
2.服务器处理请求:
-
服务器接收到HTTP请求后,根据请求中的信息(如URL、请求方法等)执行相应的处理。
-
处理可能涉及到读取数据库、执行业务逻辑等。
3.服务器返回响应:
-
生成响应
-
服务器生成一个HTTP响应,其中包含状态码、响应头和响应体。
-
状态码指示了请求的处理结果
-
100-101 信息提示
-
200 请求成功
-
300-305 重定向,页面跳转。301:永久重定向 302:临时重定向
-
400-415 服务端错误 403 禁止访问该页面 404 服务端无法找到客户端要请求的页面
-
500-505 服务端错误 500:内部服务器错误 502:网关失效 503:当前服务不可用 504:网关请求超时
-
状态码500如何解决
HTTP状态码500表示服务器在处理请求时发生了内部错误,通常表明服务器遇到了一个意外情况,无法完成客户端的请求。这种情况可能是临时的,也可能是服务器配置或代码中的错误。
以下是一些常见的解决方法:
- 查看服务器日志:
- 检查服务器的错误日志,以了解导致500错误的具体原因。服务器日志通常包含有关错误的详细信息,这有助于定位和解决问题。
- 检查代码错误:
- 如果你有访问服务器端代码的权限,检查服务器端应用程序的代码,特别是最近更改的部分。语法错误、逻辑错误或未处理的异常都可能导致500错误。
- 查看服务器配置:
- 检查服务器配置文件,确保没有配置错误。特别关注与处理HTTP请求的服务器软件(如Apache、Nginx、IIS等)相关的配置。
- 检查数据库连接:
- 如果应用程序涉及数据库操作,确保数据库连接正确,数据库服务正在运行,而且没有因为某种原因导致连接问题。
-
检查端口占用
-
查看系统日志
-
检查防火墙策略,服务状态是否正常,
-
硬件,网卡设置是否正常
-
网线等老化松动等
-
-
响应头包含了关于响应的元信息,如内容类型、日期等。
-
响应体包含了实际的数据,例如HTML文档、图像等。
-
-
发送响应:
- 服务器将HTTP响应发送回客户端。
4.四次挥手
5.time_wait
6.关闭连接:
- 客户端接收到响应后,根据需要可能会发起额外的请求(例如加载页面中的附加资源),然后关闭连接。
http请求的方法
HTTP定义了多种请求方法,用于指定对资源的不同操作。以下是一些常用的HTTP请求方法:
-
GET: 用于请求获取指定资源。GET 请求只是读取数据,不会对服务器上的资源产生任何影响。get请求可以被缓存,会记录在cookie中。请求长度是受限的。get会请求url完整的路径。
-
POST: 用于向指定资源提交数据,数据被包含在请求体中。常用于提交表单或上传文件,对服务器上的资源可能产生影响。可以把数据发送到服务端,可以修改服务端数据。请求没有缓存,也不保存在cookie中。
-
HEAD: 类似于 GET 请求,但服务器只返回请求头部,不返回实际数据。主要用于获取资源的元信息,如检查资源是否存在或获取资源的更新时间。
-
PUT: 用于向指定资源上传新的内容。与 POST 不同,PUT 要求客户端提供完整的资源数据,而不是仅提交部分数据。
-
DELETE: 用于请求服务器删除指定的资源。
-
CONNECT: 建立用于隧道的连接,通常用于加密连接的代理。
-
OPTIONS: 用于请求目标资源所支持的通信选项。客户端可以通过该请求了解服务器支持哪些方法或者对某些请求方法的支持程度。
-
TRACE: 用于追踪请求-响应的传输路径。通常用于诊断。
请求头部
HTTP请求头部是在HTTP请求中包含的元数据信息,用于描述请求的属性和要求。以下是一些常见的HTTP请求头部:
-
Host: 指定请求的目标服务器的域名和端口号。
-
User-Agent: 标识客户端的应用程序类型、操作系统、软件厂商或版本号等信息。服务器可以使用这些信息来提供更适合的响应。
-
Accept: 指定客户端能够处理的媒体类型,用逗号分隔。服务器可以使用这个头部来确定响应的内容类型。
-
Accept-Language: 指定客户端可接受的自然语言,用于内容协商。
-
Accept-Encoding: 指定客户端支持的内容编码,如gzip或deflate。服务器可以使用这个头部来压缩响应以减少传输时间。
-
Connection: 控制是否保持持久连接。常见的取值包括
keep-alive
和close
。 -
Referer(或者说是Referrer): 表示请求来源,即引导浏览器跳转到当前页面的页面的URL。
-
Authorization: 包含了客户端的认证凭证,通常用于对服务器进行身份验证。
-
Cookie: 包含了之前由服务器通过Set-Cookie头部设置的HTTP cookie。
-
Content-Type: 指定请求体的媒体类型,用于POST请求等。例如,
application/x-www-form-urlencoded
或application/json
。 -
Content-Length: 指定请求体的长度,以字节为单位。
-
Cache-Control: 控制缓存的行为,包括缓存的存储和检索方式。
响应头
由服务端发起,客户端请求什么,服务端就响应指定的内容
HTTP响应头部包含了服务器对客户端请求的响应信息,用于描述响应的属性和元数据。以下是一些常见的HTTP响应头部:
-
Content-Type: 指定响应体的媒体类型,表示服务器返回的数据类型,如
text/html
、application/json
等。 -
Content-Length: 指定响应体的长度,以字节为单位。
-
Date: 表示响应的日期和时间,用于缓存控制等目的。
-
Server: 表示响应的服务器软件名称和版本信息。
-
Set-Cookie: 服务器通过这个头部可以向客户端设置Cookie,用于在后续的请求中进行身份验证或其他目的。
-
Location: 在重定向响应中使用,指示客户端应该重定向到的新位置。
-
Cache-Control: 控制缓存的行为,包括缓存的存储和检索方式。
-
Expires: 指定响应的过期时间,表示响应数据将被认为是过时的。
-
Last-Modified: 表示资源的最后修改时间,用于协助客户端判断是否需要重新请求资源。
-
ETag: 与资源关联的实体标签,用于标识资源的版本,用于缓存验证。
-
WWW-Authenticate: 在需要进行身份验证的情况下,服务器可以通过这个头部来指示客户端应该提供何种类型的身份验证信息。
-
Access-Control-Allow-Origin: 用于支持跨域资源共享(CORS),指定哪些域名可以访问资源
http协议版本
HTTP(Hypertext Transfer Protocol)是用于在网络上传输超文本的协议。目前主要使用的HTTP协议版本有两个:HTTP/1.1 和 HTTP/2。
-
HTTP/1.1: 这是最常用的版本,也是目前互联网上使用最广泛的版本。它引入了持久连接(persistent connection),允许在单个连接上发送多个请求和响应,减少了每次请求的延迟。此外,它还支持管道化(pipelining),即在一个连接上同时发送多个请求,而无需等待先前的响应。
-
HTTP/2: 这是HTTP/1.1的继任者,旨在提高性能。HTTP/2采用二进制格式而不是文本格式,通过多路复用(multiplexing)在同一个连接上同时发送多个请求和响应,减少了等待时间。此外,它还引入了头部压缩和服务器推送等新特性。
HTTP/1.1的一些主要特点:
-
持久连接(Persistent Connection): HTTP/1.1引入了持久连接机制,通过设置
Connection: keep-alive
头部,允许在单个连接上发送多个请求和响应,而不必为每个请求都重新建立连接。这有助于减少连接建立的开销,提高性能。 -
管道化(Pipelining): HTTP/1.1支持管道化,即在一个持久连接上可以同时发送多个请求,而无需等待先前的响应。这有助于减少请求的延迟,提高并发性。
-
Host 头部: HTTP/1.1引入了Host头部,使得一个物理服务器可以承载多个虚拟主机。这样,服务器可以根据接收到的Host头部来确定请求的目标虚拟主机。
-
缓存控制: HTTP/1.1通过使用
Cache-Control
和Expires
头部来提供更精细的缓存控制机制。这使得客户端和服务器可以更灵活地管理缓存,减少不必要的数据传输。 -
范围请求和断点续传: HTTP/1.1支持范围请求(Range Requests),允许客户端请求资源的部分内容,这对于断点续传和大文件下载很有用。
-
带宽优化:http.1.1.可以控制:请求的资源只能访问特定的部分。返回码:206。访问是被限制的。资源是可控的。
https
HTTPS(Hypertext Transfer Protocol Secure)是HTTP的安全版本,它通过使用加密技术确保在客户端和服务器之间传输的数据的安全性和完整性。以下是HTTPS的一些关键特点和工作原理:
加密通信:
-
HTTPS使用TLS(Transport Layer Security)或其前身SSL(Secure Sockets Layer)协议来加密通过网络传输的数据。
-
这种加密确保第三方无法轻易截取或窃听传输的信息,提供了更高的安全性。
身份验证:
-
通过数字证书,HTTPS提供了对网站身份的验证。证书由可信的证书颁发机构(CA)签发,包含了与网站相关联的公钥。
-
当用户访问一个使用HTTPS的网站时,浏览器会验证网站的证书,确保用户连接到的是正确的服务器,而不是中间人攻击。
数据完整性:
- HTTPS通过加密确保数据在传输过程中不被篡改。这意味着无法在传输的数据中插入、修改或删除任何信息。
工作流程:
-
当用户访问一个使用HTTPS的网站时,服务器会向浏览器提供其数字证书。
-
浏览器检查证书的有效性,包括验证颁发证书的CA是否可信,以及证书是否在有效期内。
-
如果证书有效,浏览器生成一个随机的对称密钥,用于加密与服务器的通信。
-
浏览器使用服务器的公钥来加密这个随机密钥,然后将其发送到服务器。
-
服务器使用私钥解密浏览器发送的随机密钥,然后双方使用这个对称密钥来加密和解密后续的通信。
SEO和信誉:
- Google等搜索引擎鼓励网站使用HTTPS,并将其作为搜索排名的因素之一。同时,对于用户来说,看到浏览器地址栏中的绿色锁定图标可以增加信任感。
使用HTTPS对于任何涉及用户隐私或敏感信息的网站都是至关重要的。它提供了一种安全的通信方式,有助于防止恶意活动和保护用户数据的隐私。