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

11

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

我似乎无法通过在互联网上查找来弥补这个知识差距,没有人提出这样的问题。

请给出建议,并使其成为互联网的参考。


1
详细信息也可在此处获取:http://security.stackexchange.com/questions/7705/does-ssl-tls-https-hide-the-urls-being-accessed - Aziz Shaikh
5个回答

8

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

  • IP地址没有任何安全保障。
  • 服务器名称在DNS查找中暴露。
  • GET和POST URL以及服务器内容响应均已加密。

2
所有的回答都有助于案例的一般知识,但这个回答直接回答了问题。谢谢! - deb0rian

3
  1. HTTP的URL以"http://"开头,而HTTPS的URL以"https://"开头。
  2. HTTP不安全,而HTTPS是安全的。
  3. HTTP使用端口80进行通信,而HTTPS使用端口443进行通信。
  4. HTTP在应用层运行,而HTTPS在传输层运行。
  5. HTTP没有加密,而HTTPS使用加密。
  6. HTTP不需要证书,而HTTPS需要证书。

1
整个请求和响应都加密了,采用https协议。进行中间人攻击的攻击者只能通过拦截获得目标主机和端口。
这个Google Answer 很好地解释了这一点,引用如下: HTTPS在传输任何HTTP数据之前建立了基础SSL连接。这确保了所有URL数据(除了用于建立连接的主机名)仅在此加密连接中传递,并受到与任何HTTP数据相同的中间人攻击保护。 就TCP/IP协议栈而言,HTTP作为应用层协议,使用TCP层安全性。首先建立一个安全的TCP连接,然后才发送请求并接收响应。

1
我猜您的困惑不在于http和https,而是GET和POST这两种http方法。为了明确,无论是GET还是POST,数据都没有加密。请查看这个链接,它总结了GET和POST之间的区别。正如Sanjeev和Imran所提到的那样,在https协议中,数据是加密的,而在http协议中则没有。

0

在此输入图片描述 HTTP请求仅是由用户浏览器生成的一段文本,通过互联网发送。问题在于,它就像这样以纯文本形式发送,任何监视连接的人都可以读取。 如果网站使用HTTP而不是HTTPS,则所有请求和响应均可被正在监视会话的任何人读取。基本上,一个恶意行为者可以只读取请求或响应中的文本,并准确地知道某人正在请求、发送或接收的信息。

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

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

描述取自这里 - 相当简单明了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接