HTTP状态码、HTTP和HTTPS

HTTP状态码

简介

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端得到处理是否正常、通知出现的错误等工作。状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果。

状态码的类别:
在这里插入图片描述
HTTP状态码的种类数量繁多,实际上经常使用的大概只有14种。下面,我们来了解一下。

2XX 成功

2XX的响应结果表明请求被正常处理了。

  • 200 OK:表示从客户端发来的请求在服务器端被正常处理了。
  • 204 Contene:该状态码代表服务器接受的请求已成功处理,但在返回的的响应报文种不含尸体的主体部分。另外,也不允许返回任何实体的主体。
  • 206 Partial Contene:该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。

3XX 重定向

3XX响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

  • 301 Moved Permanently:永久重定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源在所指的URI。
  • 302 Found:临时重定向。该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。
  • 303 See Other:303状态码与302Found状态码有者相同的功能,但303状态码明确表示客户端应当采用GET方法获取资源,这与302状态码不同。
  • 304 Not Modified:表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但未满足条件的情况。304虽然被划分在3XX类别中,但是和重定向没有关系。
  • 307 Temporary Redirect:临时重定向。

4XX客户端错误

4XX的相应结果表明客户端是发生错误的原因所在。

  • 400 Bad Request:该状态码表示请求报文中存在语法错误。
  • 401 Unauthorized:该状态码表示发送的请求需要有通过HTTP认证的认证信息。另外,若之前以进行过一次请求,则表示用户认证失败。
  • 403 Forbidden:表明对请求资源的访问被服务器拒绝了。
  • 404 Not Found:表示服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

5XX服务器错误

5XX的响应结果表明服务器本身发生错误。

  • 500 Internal Server Error:该状态码表明服务器端在执行请求时发生了错误。
  • 503 Service Unavailable:该状态码表明服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求。

HTTP和HTTPS

在HTTP协议中有可能存在信息窃听或身份伪装等安全问题。使用HTTPS通信机制可以有效地防止这些问题。在了解HTTPS之前我们先看看HTTP的缺点。

HTTP的缺点

通信使用明文可能会被窃听

由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信的请求和响应的内容)进行加密。即,HTTP报文使用明文(指未经过加密的报文)方式发送。
处理办法:加密处理防止被窃听。

  • 通信的加密:一种方式就是将通信加密。HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TSL(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。
  • 内容的加密:还有一种将参与通信的内容本身加密的方式。由于HTTP协议中还没有加密机制,那么就对HTTP协议传输的内容本身加密。即把HTTP报文里的所有内容进行加密处理。

不验证通信方的身份就可能遭遇伪装

HTTP协议中的请求和响应不会对通信放进行确认。也就是说存在“服务器是否就是发送请求中URI真正指定的主机,返回的相应是否真的返回到实际提出请求的客户端”等类似问题。

无法证明报文完整性,可能已遭篡改

所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味着无法判断信息是否准确。
由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间,即使请求或响应的内容遭到篡改,也没办法获悉。

HTTP+加密+认证+完整性保护=HTTPS

HTTP加上加密处理和认证以及完整性保护后即是HTTPS。
如果在HTTP协议通信过程中使用未经加密的明文,比如在web页面中输入信用卡号,若遭到窃听,那么就暴露了卡号。另外,对于HTTP来说,服务器和客户端都没有办法确认通信方。
为了解决上述问题,需要在HTTP上再加入加密处理和认证等机制。我们把添加了加密及认证的HTTP称为HTTPS。

HTTPS是身披SSL外壳的HTTP

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL和TSL协议替代而已。
通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信再由SSL和TCP通信了。简言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP。在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。
在这里插入图片描述

加密技术

SSL采用一种叫做公开密钥加密的加密处理方式。近代的加密方法中加密算法是公开的,而密钥确实保密的。通过这种方式得以保持加密方法的安全性。

共享密钥加密

加密和解密同用一个密钥的方式称为共享密钥加密(Common key crypto system),也称作对称密钥加密。
在这里插入图片描述
以共享密钥方式加密时必须将密钥也发给对方。可如何安全转交呢?若在转发密钥时被监听,那么也就失去了加密的意义,并且还要设法安全的保管收到的密钥。

使用两把密钥的公开密钥加密

也就是非对称加密,这种方式很好的解决了共享密钥加密的困难。
使用一对非对称的密钥。一把叫做私有密钥,另一把叫做公开密钥。顾名思义,私有密钥不能让任何人知道,而公开密钥则可以随意发布,任何人都可以获得。
使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息,再使用自己的私有密钥进行解密。
在这里插入图片描述

HTTPS采用混合加密机制

HTTPS采用共享密钥和公开密钥加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。但是公开密钥与共享密钥加密相比,其处理速度要慢。
所以应充分利用两者各自的优势,将多种方法组合起来用于通信。在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

降温vae+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值