【日常积累】HTTP和HTTPS的区别

这篇具有很好参考价值的文章主要介绍了【日常积累】HTTP和HTTPS的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

在运维面试中,经常会遇到面试官提问http和https的区别,今天咱们先来简单了解一下。

超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:各种密码,银行卡号等重要信息。
为了解决HTTP协议的这个安全问题,需要使用另一种协议:HTTPS超文本传输安全协议,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

基本概念

HTTP

HTTP(Hyper Text Transfer Protocol)全称为超文本传输协议,是一个简单的请求——响应协议:

  • HTTP协议规定了如何从网站服务器传输超文本到本地浏览器;
  • HTTP协议基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。
  • HTTP协议可以使浏览器更加高效,使网络传输减少。
  • HTTP协议不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTPS

HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),超文本传输安全协议:

  • 是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
  • HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
  • HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
  • HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

区别

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

  • https协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。
  • http是明文传输,数据未加密,安全性差;https则是具有安全性的ssl加密传输协议,安全性好。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  • http页面响应速度比https快,因为http使用TCP三次握手建立连接,客户端和服务器需要交换 3 个包,而https除了TCP的三个包,还要加上ssl握手需要的 9 个包,所以一共是 12 个包。
  • https=SSL/TLS+http,所以,https比http要更耗费服务器资源。

工作原理

HTTP工作原理

(1)客户端与服务器建立连接。该连接是通过TCP 来完成的,一般端口号是80。
(2)客户向服务器提出请求。请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。
(3)服务器接受请求,并根据请求返回相应的文件作为应答。格式:一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。
(4)客户与服务器关闭连接。

HTTPS工作原理

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,现在绝大多数网站都会采用安全级别较高的HTTPS协议,即使用户访问http协议的网站,也会跳转到https协议类型的网站。
【日常积累】HTTP和HTTPS的区别,http,https
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如下图所示。
【日常积累】HTTP和HTTPS的区别,http,https
步骤分析:
(1)客户端向服务端443端口发起HTTPS请求。该请求中携带了客户端支持的加密算法和哈希算法;
(2)服务端收到请求,选择浏览器支持的加密算法和哈希算法。
(3)服务端将算法和数字证书发送给客户端。该证书包含了用于认证目的的服务器标识,可以是向某个可靠机构申请的,也可以是自制的;
(4)客户端对服务器端的证书进行验证,这一部分是浏览器内置的TLS完成的,具体步骤如下:

首先浏览器会从内置的证书中搜索,找到该证书对应的机构,如果查到了对应的机构,则取出该机构颁发的公钥;如果没有找到,此时浏览器就会提示用户该证书不是由权威机构颁发,是不可信任的。
然后用机构的证书公钥解密,得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。浏览器会先验证签名的合法性,签名通过后,浏览器验证证书记录的网址是否和当前网址是一致的,不一致会提示用户。如果网址一致会检查证书有效期,证书过期了也会提示用户。这些都通过认证时,浏览器就可以安全使用证书中的网站公钥了。
服务器生成一个随机密码串pre_master_secret,并使用服务器的公钥对其进行加密。
(5)客户端将加密的随机密码串传送给服务端。
(6)服务器用自己的私钥解密得到随机密码串(私钥),然后通过该随机密码串把网页内容进行对称加密,并传输给浏览器。
(7)浏览器用之前生成的私钥解密算法获取网页内容。

HTTPS优缺点

优点

(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

缺点

(1)相同网络环境下,HTTPS协议会使页面的加载时间延长,耗电增加。此外,HTTPS协议还会影响缓存,增加数据开销和功耗。
(2)HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
(3)SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。
(4)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
(5)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

HTTP请求消息和响应消息

在HTTP请求和响应的过程中传递的数据块就叫HTTP消息,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。

请求消息

请求消息是指客户端向服务器端发送请求时所携带的数据块,来自客服端。
请求方式用来规定客户端与服务器端联系的类型。
HTTP协议中客户端8种请求方式如下:

请求方式 说明
Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
Post 向指定资源提交数据进行处理请求(提交表单、上传文件),可能导致新的资源的建立或原有资源的修改
Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
Trace 回显服务器收到的请求,用于测试和诊断
Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务器

响应消息

响应消息是指服务器端向客户端进行响应请求时所携带的数据块,来自服务端

在响应消息中,对于客户端的每一次请求,服务器端都要给予响应,在响应的时候我们可以通过状态码告诉客户端此次请求是成功还是失败。

状态代码由3位数字组成,表示请求是否被理解或被满足。HTTP响应状态码的第一个数字定义了响应的类别,后面两位没有具体的分类,第1位数字有5种可能的取值,大致了解:
1**:请求已接收,需要继续处理。
2**:请求已成功被服务器接收、理解并接受。
3**:为完成请求,客户端需进一步细化请求。
4**:客户端的请求有错误。
5**:服务器端出现错误。

HTTP协议常见的状态码

状态码 说明
200 表示服务器成功处理了客户端的请求
302 表示请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求
404 表示服务器找不到请求的资源
400 表示客户端请求有语法错误
500 表示服务器发生错误,无法处理客户端的请求

更多关于Linux的知识请前往博客主页查看,编写过程中可能由于能力有限难免出现问题,敬请指出,谢谢。文章来源地址https://www.toymoban.com/news/detail-651771.html

到了这里,关于【日常积累】HTTP和HTTPS的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • http 和 https 的区别?

    目录 1.http 和 https 的基本概念 2.http 和 https 的区别 3.https 协议的工作原理 4.https 协议的优点 5.https 协议的缺点 http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传

    2024年02月20日
    浏览(34)
  • HTTP和HTTPS的区别

            HTTP(HyperText Transfer Protocol)是一种 应用层协议 , 用于在Web浏览器和Web服务器之间传输数据 。HTTP是一个 无状态协议 ,每个请求和响应都是独立的,服务器不会存储关于客户端的任何信息。HTTP 标准化工作最初由万维网联盟(W3C)和互联网工程任务组(IETF)合作

    2024年02月11日
    浏览(32)
  • HTTP 和 HTTPS的区别

    1.明文传输,不安全 2.默认端口号:80 3.TCP三次握手即可 1.加密传输,更安全(在HTTP层与TCP层之间加上了SSL/TTL安全协议)  SSL和TTL是在不同时期的两种叫法,含义相同。 2.默认端口号:443 3.TCP三次握手即可+SSL/TTL四次握手(RSA算法和ECDHE算法) 4.采用 对称加密 和 非对称加密 结合的

    2024年02月05日
    浏览(34)
  • http和https的区别!

    HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等

    2024年04月17日
    浏览(28)
  • HTTP与HTTPS的区别

    HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。 HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需

    2024年02月05日
    浏览(30)
  • http和https的区别(简述)

    HTTP(HyperText Transfer Protocol)和HTTPS(HTTP Secure)都是用于在客户端和服务器之间传输数据的协议,但它们在安全性方面有重要的区别。 1.HTTP: 概述: HTTP是一种用于传输超文本的协议( 超文本传输协议 ),是Web中最基础、最常用的协议之一。 工作原理: 数据在客户端和服务

    2024年02月22日
    浏览(24)
  • HTTPS和HTTP的主要区别

    HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在互联网上传输数据的两种协议。 HTTPS和HTTP主要区别 1.安全性不同 HTTP是明文传输协议,数据在传输过程中不加密。如果网站采用http协议,因为该协议不加密,极容易遭遇中间人攻击,用户的个人隐私和

    2024年02月12日
    浏览(32)
  • http和https的区别(面试题)

    Http:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。也是互联网上应用最为广泛

    2024年02月16日
    浏览(45)
  • 面试题http和https的区别

    一、HTTP和HTTPS的基本概念         HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。         HTTPS:是以安全为目标的

    2024年03月20日
    浏览(47)
  • http和https区别与上网过程

    HTTP和HTTPS是两种常用于Web浏览器和网站服务器之间信息传递的协议。HTTP在传输数据时使用的是明文,而HTTPS则是在HTTP的基础上增加了SSL/TLS加密层,提供了数据的加密传输。 HTTP(超文本传输协议):是一个基于TCP/IP通信协议来传递数据的协议。它通常运行在TCP协议之上,由统

    2024年04月27日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包