编程中http和https有什么区别

Hoa*_*Lam 6 html https http

我只知道"s"代表"安全",用户不应该在仅使用http的网站上输入关键信息.但我真的想知道这两个协议对我的编程有什么影响,例如:

  • 一些网站如何获得"https"而一些网站没有(或者他们如何打开和关闭此功能,我不知道).这是否意味着我必须在某处注册?

  • 我当时认为http中的通信没有加密,而某些加密可能发生在https中,这是正确的吗?

  • 因为加密(如果有的话)进程是由浏览器完成的,因此,我的服务器端代码与"http"或"https"无关,是否正确?

  • 有没有办法强制用户只使用https?

LMS*_*LMS 8

  • 使用HTTPS协议的网站使用由受信任的第三方(或"证书颁发机构")颁发的证书,该证书包含公钥(请参阅:公钥基础结构).公钥与私钥配对,用私钥加密的信息只能用公钥解密.这用于确认服务器是私钥的持有者(因此是证书颁发机构认证的实体).要使用HTTPS协议,您必须生成或购买证书.出于各种原因,购买证书而不是生成证书更为常见.

  • HTTPS通信已加密.与证书关联的密钥不进行加密,而是浏览器和服务器使用诸如Diffie-Hellman Exchange之类的方案来生成用于加密通信的密钥.这很重要,因为拥有公钥的任何人都可以解密使用私钥加密的内容.

  • 从浏览器发送的信息由浏览器加密并由服务器解密.您的Web服务器软件将解密信息; 收到的信息与标准HTTP流量没有什么不同.

  • 是的,您可以强制使用HTTPS.您可以通过服务器软件(例如RewriteRule在Apache中,RewriteCond检查HTTPS)或通过HSTS(包括发送特定标头)来执行此操作.如果您在支持HSTS的浏览器中发送HSTS标头,浏览器将自动从HTTP重定向到HTTPS(请参阅:HTTP严格传输安全性).


Dar*_*rov 4

您需要在网络服务器上安装 SSL 证书才能启用 HTTPS。这将允许在客户端浏览器和服务器之间建立加密连接,并且所有 HTTP 流量都将被加密。该证书由受信任的机构颁发。您还可以生成用于测试目的的证书,但当客户端浏览器导航到该网站时,它会发出警告,指出该证书不是由受信任的机构颁发的。

您可以通过将 Web 服务器配置为自动将所有 HTTP 请求重定向到相应的 HTTPS 端点来强制使用 HTTPS。

你可以查一下SSL/TLS