繁体   English   中英

HTTP 或 HTTPS 请求中的 GET/POST 有什么区别?

[英]What is the difference between GET/POST in HTTP or HTTPS requests?

在 HTTP 或 HTTPS 协议中 GET/POST 的工作方式有什么区别吗? 当您尝试嗅探数据时,HTTPS GET/POST 数据包中可见什么? 主机IP? 域名? 完整的 GET 请求? 握手成功后 TLS 隐藏了哪些信息?

我似乎无法通过查看互联网来缩小这种知识差距,只是没有提出这样的问题。

请指教,供互联网参考。

SSL 在 TCP 和 HTTP 协议层之间运行。 浏览器将首先通过 DNS 查找服务器 ip。 这是一个可以被嗅探的纯文本查找。 然后它将在端口 443 上联系服务器并建立加密通道。 只有这样,它才会发送一个加密的 POST 或 GET 请求 URL 以供服务器完成。

  • IP 地址不受任何保护。
  • 服务器名称在 DNS 查找中公开。
  • GET 和 POST URL 和服务器内容响应是加密的。
  1. 如果是 HTTP,则 URL 以“http://”开头,而如果是 HTTPS,则 URL 以“https://”开头。
  2. HTTP 是不安全的,而 HTTPS 是安全的。
  3. HTTP 使用端口 80 进行通信,而 HTTPS 使用端口 443 进行通信。
  4. HTTP 在应用层运行,而 HTTPS 在传输层运行。
  5. HTTP 中没有加密,而 HTTPS 使用加密。
  6. HTTP 不需要证书,而 HTTPS 需要证书。

整个请求和响应也是为 https 加密的。 中间人做中间人攻击,只能通过拦截得到目的主机和端口。

这个谷歌答案正确地解释了它。 去引用

HTTPS Establishes an underlying SSL conenction before any HTTP data is transferred. This ensures that all URL data (with the exception of hostname, which is used to establish the connection) is carried solely within this encrypted connection and is protected from man-in-the-middle attacks in the same way any HTTP data is.

在 TCP/IP 堆栈方面,HTTP 是一种应用层协议,它使用 TCP 层安全性。 首先,建立一个安全的 TCP 连接,然后只发送请求并接收响应。

我认为您的困惑不在于 http 和 https,而更多地在于 GET 和 POST http 方法。

为了清楚起见,数据在 GET 和 POST 中都没有加密。 浏览此链接,该链接总结了 GET 和 POST 之间的差异。

正如 Sanjeev 和 Imran 所提到的,数据在 https 中加密,而不是在 http 协议中。

在此处输入图像描述 HTTP 请求只是一段文本,由用户的浏览器生成,通过 Internet 发送。 问题是,它是以明文形式发送的,任何监视连接的人都可以阅读。 如果网站使用 HTTP 而不是 HTTPS,则任何正在监视会话的人都可以读取所有请求和响应。 从本质上讲,恶意行为者只需阅读请求或响应中的文本,就可以准确地知道某人在请求、发送或接收什么信息。

在 HTTPS 请求和响应中使用 TLS/SSL。 TLS 使用一种称为公钥加密的技术:有两个密钥,一个公钥和一个私钥,公钥通过服务器的 SSL 证书与客户端设备共享。 当客户端打开与服务器的连接时,两个设备使用公钥和私钥就新密钥(称为会话密钥)达成一致,以加密它们之间的进一步通信。

然后,所有 HTTP 请求和响应都使用这些会话密钥加密,因此拦截通信的任何人只能看到随机字符串,而不是明文。

描述取自这里- 非常简单明了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM