端口 443 与 80:它们有何不同?
off999 2025-01-14 16:25 19 浏览 0 评论
您是否知道超过 90% 的互联网流量通过端口 443 传输?如果您对网络安全或 Web 开发感兴趣,那么您可能遇到过不同编号的端口,尤其是端口 80 和 443。
但它们之间有什么区别?简而言之,端口 80 用于 HTTP 流量,端口 443 用于 HTTPS。我们将重点介绍端口 80 与 443、如何打开它们以及何时可能需要将流量从端口 80 重定向到 443。
什么是端口 80?
端口 80是计算机网络上用于网络流量的通信端点。它是超文本传输?协议 (HTTP)的默认端口,该协议用于在互联网上传输和接收网页。当您使用网络浏览器访问网站时,浏览器和网络服务器之间的通信通常通过端口 80 进行。
端口 80 在 Internet 协议套件的应用层上运行,该层直接与软件应用程序交互。当通过端口 80 发出 HTTP 请求时,托管您要访问的网站的服务器将接收该请求,并作为响应发回相关的网站数据。
但是您的浏览器如何知道要使用端口 80?这就是统一资源定位符 (URL) 的作用所在。当您在浏览器中输入 URL 时,它通常包含一个隐式端口 80 引用。例如,当您输入 http://www.example.com 时,http:// 部分会告诉您的浏览器使用 HTTP 协议,除非另有说明,否则它将通过端口 80 进行连接。
然而,端口 80 的缺点是它没有加密,这意味着通过此端口发送的数据可能会被外部人员看到。出于这个原因,在过去十年中,大多数网站都已迁移到 HTTPS 和端口 443,它们提供了安全的加密连接。
什么是端口 443?
端口 443是默认的HTTPS 端口,是与安全网络通信关联的端口号。它使用HTTPS 协议,这是 HTTP 的安全版本。该协议采用了强大的安全措施,即传输层安全性 (TLS) 技术。
端口 443 使用 TLS 协议在客户端和服务器之间提供安全连接。这样,通过此端口传输的任何数据都经过加密,从而确保安全连接并保护信息免遭潜在窃听者的攻击。
此端口对于电子商务和网上银行网站至关重要,因为这些网站会传输信用卡号和银行详细信息等敏感数据。
端口 443 还用于其他需要安全连接的服务,包括电子邮件服务器和 VPN。如此广泛的应用使端口 443 成为安全网络不可或缺的一部分。
端口 80 和 443 有什么区别?
虽然端口 80 和 443 在网络通信中都发挥着重要作用,但它们的主要区别在于它们为您在不同服务上的数据传输提供的在线安全级别。让我们看看端口 80 和 443 的用途。
协议和安全
端口 80 与超文本传输??协议相关,用于 Web 浏览器和服务器之间的未加密通信。
另一方面,端口 443 与超文本传输??协议安全相关,这是 HTTP 的扩展,它通过 TLS 加密来保护在 Web 浏览器和服务器之间传输的数据。
端口 80 以明文形式传输数据,因此容易被拦截和窃取。通过 HTTP 发送的信息未加密。端口 443 加密数据,提供安全的通信通道。HTTPS 有助于保护敏感信息不被恶意实体拦截。
用例和 URL 方案
从历史上看,端口 80 用于一般的 Web 浏览和通信,适用于非敏感信息或公共内容。然而,在当代 Web 实践中,端口 80 正逐渐被淘汰,取而代之的是端口 443。这种转变是由于 HTTPS 的广泛采用,使安全 Web 浏览成为所有在线交互的标准:
使用 HTTP 的 URL 以http://作为前缀。例如, http://www.example.com。
使用 HTTPS 的 URL 以https://作为前缀。例如,https://www.example.com。
证书要求
端口 80无需SSL/TLS 证书。传输以纯文本形式进行,并且不会检查服务器的身份。由于缺乏身份验证,HTTP 容易受到中间人攻击。
相反,HTTPS 要求在服务器上安装 SSL/TLS 证书。此证书用于向客户端验证服务器的真实性并启用数据加密。它确保客户端与目标服务器而不是冒名顶替者进行通信。
如何开放80端口和443端口?
打开端口 80 和 443 的过程很简单,但具体过程取决于您的操作系统。无论是 Windows、Mac、Linux、Ubuntu 还是 CentOS,每个操作系统都有自己的命令和程序。
让我们看看如何在每个平台上执行此操作,重点关注所涉及的技术步骤。
视窗
在 Windows 上打开端口 80 或 443 需要配置内置的 Windows 防火墙。首先,您需要通过在“开始”菜单的搜索栏中输入 Windows 防火墙来访问 Windows 防火墙设置。
现在,要打开端口,请执行以下步骤:
1、打开 Windows 防火墙设置:按 Win + S 打开搜索栏。输入防火墙并选择高级安全 Windows Defender 防火墙。
2、导航到入站规则:在左侧窗格中,单击入站规则。
3、创建新的入站规则:在右侧窗格中,单击“新建规则...”以打开“新建入站规则向导”。
4、选择规则类型:选择端口并单击下一步。
5、指定端口号:选择TCP,输入80或443作为具体的本地端口,点击下一步。
6、选择操作:选择“允许连接”,然后单击“下一步”。
7、选择配置文件:选择适合您情况的配置文件(例如,域、私人、公共)。单击下一步。
8、指定规则名称:输入规则名称(例如,打开端口 443)并提供可选描述。单击完成。
Mac 操作系统
要在运行 macOS 的 Mac 上打开端口 80 和 443,可以使用内置防火墙工具pf(数据包过滤器)。步骤如下:
1、在 Mac 上打开终端。你可以在“应用程序”>“实用程序”>“终端”中找到它。
2、通过运行以下pfctl命令检查防火墙的状态:
sudo pfctl -s all
3、为防火墙规则创建一个新文件。您可以使用任何您熟悉的文本编辑器。在这里,我们将使用 nano 文本编辑器打开配置文件:
sudo nano /etc/pf.conf
4、将以下行添加到pf.conf文件以打开端口 80 和 443:
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 8443
5、这会将流量从端口 80 和 443 分别重定向到端口 8080 和 8443。您可以根据需要调整端口号。
6、保存更改并退出文本编辑器。
7、将新规则加载到pf中:
sudo pfctl -f /etc/pf.conf
8、启用防火墙:
sudo pfctl -e
替代方法
1、打开系统偏好设置:单击屏幕左上角的 Apple 菜单,然后选择系统偏好设置。
2、点击“安全和隐私”。这将打开“安全和隐私”偏好设置。
3、点击防火墙。在防火墙选项卡中,点击窗口左下角的锁图标来解锁。
4、输入您的管理员密码来解锁设置。
5、单击防火墙选项1:这将打开一个新菜单,您可以在其中添加或删除端口。
6、单击+按钮:这将添加一条新规则。
7、输入以下详细信息,然后单击“确定”:
端口号:输入80或443。
名称:输入新规则的名称。
协议:从下拉菜单中选择 TCP。
8、关闭防火墙首选项窗口:您的更改将自动保存。
9、重新启动计算机:此步骤对于使您所做的更改生效是必要的。
Linux(Ubuntu、Debian、CentOS、Fedora)
在 Linux 操作系统上打开端口 80 和 443 需要配置系统上的防火墙。具体步骤可能因您使用的发行版、防火墙选项和所用的管理工具而异。
我们将提供两种常见防火墙工具的说明:ufw(Ubuntu 和一些基于 Debian 的系统使用)和firewalld(Fedora 和一些基于 Red Hat 的系统使用)。
使用 ufw(简单防火墙):
1、检查 ufw 是否已安装:
sudo apt-get update sudo apt-get install ufw
2、如果尚未启用,请启用 ufw:
sudo ufw enable
3、打开端口80和443:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
4、检查状态:
sudo ufw status
使用firewalld:
1、检查是否安装了firewalld:
对于Feodora
sudo dnf install firewalld
For CentOS::
sudo yum install firewalld
2、启动并启用firewalld:
sudo systemctl start firewalld sudo systemctl enable firewalld
3、打开端口80和443:
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent
4、重新加载firewalld以应用更改:
sudo firewall-cmd --reload
5、检查状态:
sudo firewall-cmd --list-all
请记住,这些说明是通用的,可能需要根据您的特定 Linux 发行版进行调整。此外,如果您有不同的防火墙管理工具(例如 iptables),命令会有所不同。请务必参考您的发行版的文档以获取准确且最新的信息。
如何将端口 80 重定向至 443?
您需要修改服务器的配置,将流量从端口 80 重定向到 443。这样做是因为端口 80 用于未加密的 HTTP 流量,而端口 443 用于安全的 HTTPS 流量。通过将端口 80 重定向到 443,您实际上是在强制所有到您服务器的流量使用安全的 HTTPS 协议。
首先,您必须确保您的服务器已设置为处理 HTTPS 流量。这通常涉及获取和安装 SSL(安全套接字层)证书。一旦 SSL 证书到位,您就可以开始重定向流量。
如果您使用的是Apache服务器,则需要修改“.htaccess”文件。将以下几行添加到该文件中:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]
将 yourdomain.com 替换为您的实际域名。此代码告诉服务器将端口 80 上的所有传入流量重定向到端口 443 上的相同 URL。
对于Nginx服务器,您需要修改 nginx.conf 文件。将以下行添加到服务器块:
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
再次,用您的实际域名替换yourdomain.com 。
常问问题
端口 443 是否易受攻击?
端口 443 本身并不存在漏洞;它用于安全 HTTPS 通信。但是,任何端口的安全性都取决于其上运行的特定配置和服务。
端口 443 会被黑客入侵吗?
是的,443 端口确实可以被黑客入侵。例如,一种常见的方法是利用在此端口上运行的 Web 服务器中的漏洞,例如OpenSSL中的 Heartbleed 漏洞。
端口 443 比端口 80 更安全吗?
是的,端口 443 比端口 80 更安全,因为它与加密的 HTTPS 流量相关联,与端口 80 上的未加密通信相比提供更高级别的安全性。
为何 80 端口易受攻击?
端口 80 容易受到攻击,因为它通常处理未加密的 HTTP 流量,从而使数据面临潜在的拦截和安全风险。
打开端口 80 和 443 是否安全?
如果配置正确,打开端口 80 和 443 是安全的,尤其是对于 Web 服务。但是,请谨慎,因为这些端口上的设置不当或未使用的服务可能会带来安全风险。
端口 80 始终开放吗?
端口 80 并非始终默认打开;其状态取决于系统或网络的配置。在许多情况下,它打开是为了方便 HTTP 流量,但管理员可以根据安全需求选择关闭或修改访问权限。
SSL 是否始终在端口 443 上?
否,SSL 并不总是在端口 443 上,但使用 SSL 或其后继 TLS 的 HTTPS 通常在端口 443 上运行,以实现安全的网络通信。
HTTP 可以在端口 443 上运行吗?
否,HTTP 在端口 80 上运行,而端口 443 通常用于安全加密的 HTTP 连接(HTTPS)。
端口 80 可以用于 HTTPS 吗?
否,端口 80 用于未加密的连接。HTTPS 是 HTTP 的安全版本,通常使用端口 443 进行加密通信。
总结
端口 80 和 443 就像是万维网流量的两条不同高速公路。端口 80 是老式的、不安全的路线,而端口 443 则是现代的安全高速公路。了解端口 80 和 443 之间的区别并知道如何使用它们将有助于您安全地浏览网络。
大多数服务器默认开放端口 443,允许加密传入连接。如果没有,请使用我们的快速说明来了解如何开放端口 80 或将端口 80 重定向到 443。
相关推荐
- 如何理解python中面向对象的类属性和实例属性?
-
类属性和实例属性类属性就是给类对象中定义的属性通常用来记录与这个类相关的特征类属性不会用于记录具体对象的特征类属性的理解:类属性是与类自身相关联的变量,而不是与类的实例关联。它们通...
- Java程序员,一周Python入门:面向对象(OOP) 对比学习
-
Java和Python都是**面向对象编程(OOP)**语言,无非是类、对象、继承、封装、多态。下面我们来一一对比两者的OOP特性。1.类和对象Java和Python都支持面向对象...
- 松勤技术精选:Python面向对象魔术方法
-
什么是魔术方法相信大家在使用python的过程中经常会看到一些双下划线开头,双下划线结尾的方法,我们把它统称为魔术方法魔术方法的特征魔术方法都是双下划线开头,双下划线结尾的方法魔术方法都是pytho...
- [2]Python面向对象-【3】方法(python3 面向对象)
-
方法的概念在Python中,方法是与对象相关联的函数。方法可以访问对象的属性,并且可以通过修改对象的属性来改变对象的状态。方法定义在类中,可以被该类的所有对象共享。方法也可以被继承并重载。方法的语法如...
- 一文带你理解python的面向对象编程(OOP)
-
面向对象编程(OOP,Object-OrientedProgramming)是一个较难掌握的概念,而Python作为一门面向对象的语言,在学习其OOP特性时,许多人都会对“继承”和“多态”等...
- 简单学Python——面向对象1(编写一个简单的类)
-
Python是一种面向对象的编程语言(ObjectOrientedProgramming),在Python中所有的数据类型都是对象。在Python中,也可以自创对象。什么是类呢?类(Class)是...
- python进阶突破面向对象——四大支柱
-
面向对象编程(OOP)有四大基本特性,通常被称为"四大支柱":封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)和抽象(Abstrac...
- Python学不会来打我(51)面向对象编程“封装”思想详解
-
在面向对象编程(Object-OrientedProgramming,简称OOP)中,“封装(Encapsulation)”是四大核心特性之一(另外三个是继承、多态和抽象),它通过将数据(属性)和...
- Python之面向对象:对象属性解析:MRO不够用,补充3个方法
-
引言在前面的文章中,我们谈及Python在继承关系,尤其是多继承中,一个对象的属性的查找解析顺序。由于当时的语境聚焦于继承关系,所以只是简要提及了属性解析顺序同方法的解析顺序,而方法的解析顺序,在Py...
- Python之面向对象:通过property兼顾属性的动态保护与兼容性
-
引言前面的文章中我们简要提及过关于Python中私有属性的使用与内部“名称混淆”的实现机制,所以,访问私有属性的方法至少有3种做法:1、使用实例对象点操作符的方式,直接访问名称混淆后的真实属性名。2、...
- Python之面向对象:私有属性是掩耳盗铃还是恰到好处
-
引言声明,今天的文章中没有一行Python代码,更多的是对编程语言设计理念的思考。上一篇文章中介绍了关于Python面向对象封装特性的私有属性的相关内容,提到了Python中关于私有属性的实现是通过“...
- Python中的私有属性与方法:解锁面向对象编程的秘密
-
Python中的私有属性与方法:解锁面向对象编程的秘密在Python的广阔世界里,面向对象编程(OOP)是一种强大而灵活的方法论,它帮助我们更好地组织代码、管理状态,并构建可复用的软件组件。而在这个框...
- Python 面向对象:掌握类的继承与组合,让你的代码更高效!
-
引言:构建高效代码的基石Python以其简洁强大的特性,成为众多开发者首选的编程语言。而在Python的面向对象编程(OOP)范畴中,类的继承和组合无疑是两大核心概念。它们不仅能帮助我们实现代码复用,...
- python进阶-Day2: 面向对象编程 (OOP)
-
以下是为Python进阶Day2设计的学习任务,专注于面向对象编程(OOP)的核心概念和高阶特性。代码中包含详细注释,帮助理解每个部分的实现和目的。任务目标:复习OOP基础:类、对象、继...
- 外婆都能学会的Python教程(二十八):Python面向对象编程(二)
-
前言Python是一个非常容易上手的编程语言,它的语法简单,而且功能强大,非常适合初学者学习,它的语法规则非常简单,只要按照规则写出代码,Python解释器就可以执行。下面是Python的入门教程介绍...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python字典遍历 (54)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python重命名文件 (54)
- python面向对象编程 (60)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)