p2p网站建设后期维护,做网站公司广州,seo内容优化方法,百度推广助手手机版背景
在运维面试中#xff0c;经常会遇到面试官提问http和https的区别#xff0c;今天咱们先来简单了解一下。
超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息#xff0c;HTTP协议以明文方式发送内容#xff0c;不提供任何方式的数据加密#xff0c;如果…背景
在运维面试中经常会遇到面试官提问http和https的区别今天咱们先来简单了解一下。
超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息HTTP协议以明文方式发送内容不提供任何方式的数据加密如果攻击者截取了Web浏览器和网站服务器之间的传输报文就可以直接读懂其中的信息因此HTTP协议不适合传输一些敏感信息比如各种密码银行卡号等重要信息。 为了解决HTTP协议的这个安全问题需要使用另一种协议HTTPS超文本传输安全协议为了数据传输的安全HTTPS在HTTP的基础上加入了SSL协议SSL依靠证书来验证服务器的身份并为浏览器和服务器之间的通信加密。
基本概念
HTTP
HTTPHyper Text Transfer Protocol全称为超文本传输协议是一个简单的请求——响应协议
HTTP协议规定了如何从网站服务器传输超文本到本地浏览器HTTP协议基于客户端服务器架构工作是客户端用户和服务器端网站请求和应答的标准。HTTP协议可以使浏览器更加高效使网络传输减少。HTTP协议不仅保证计算机正确快速地传输超文本文档还确定传输文档中的哪一部分以及哪部分内容首先显示如文本先于图形等。
HTTPS
HTTPSHyper Text Transfer Protocol over SecureSocket Layer超文本传输安全协议
是以安全为目标的 HTTP 通道在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSLHTTPS 的安全基础是 SSL因此加密的详细内容就需要 SSL。HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层在 HTTP与 TCP 之间。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯例如交易支付等方面。HTTPS协议的主要作用可以分为两种一种是建立一个信息安全通道来保证数据传输的安全另一种就是确认网站的真实性。
区别
HTTP协议传输的数据都是未加密的也就是明文的因此使用HTTP协议传输隐私信息非常不安全为了保证这些隐私数据能加密传输于是网景公司设计了SSLSecure Sockets Layer协议用于对HTTP协议传输的数据进行加密从而就诞生了HTTPS。简单来说HTTPS协议是由SSLHTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全。
HTTPS和HTTP的区别主要如下
https协议需要到CACertificate Authority数字证书认证机构申请证书一般免费证书较少因而需要一定费用。http是明文传输数据未加密安全性差https则是具有安全性的ssl加密传输协议安全性好。http和https使用的是完全不同的连接方式用的端口也不一样前者是80后者是443。http的连接很简单是无状态的HTTPS协议是由SSLHTTP协议构建的可进行加密传输、身份认证的网络协议比http协议安全。http页面响应速度比https快因为http使用TCP三次握手建立连接客户端和服务器需要交换 3 个包而https除了TCP的三个包还要加上ssl握手需要的 9 个包所以一共是 12 个包。httpsSSL/TLShttp所以https比http要更耗费服务器资源。
工作原理
HTTP工作原理
1客户端与服务器建立连接。该连接是通过TCP 来完成的一般端口号是80。 2客户向服务器提出请求。请求方式的格式为统一资源标识符URL、协议版本号后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。 3服务器接受请求并根据请求返回相应的文件作为应答。格式一个状态行包括信息的协议版本号、一个成功或错误的代码后边是 MIME 信息包括服务器信息、实体信息和可能的内容。 4客户与服务器关闭连接。
HTTPS工作原理
我们都知道HTTPS能够加密信息以免敏感信息被第三方获取现在绝大多数网站都会采用安全级别较高的HTTPS协议即使用户访问http协议的网站也会跳转到https协议类型的网站。 客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤如下图所示。 步骤分析 1客户端向服务端443端口发起HTTPS请求。该请求中携带了客户端支持的加密算法和哈希算法 2服务端收到请求选择浏览器支持的加密算法和哈希算法。 3服务端将算法和数字证书发送给客户端。该证书包含了用于认证目的的服务器标识可以是向某个可靠机构申请的也可以是自制的 4客户端对服务器端的证书进行验证这一部分是浏览器内置的TLS完成的具体步骤如下
首先浏览器会从内置的证书中搜索找到该证书对应的机构如果查到了对应的机构则取出该机构颁发的公钥如果没有找到此时浏览器就会提示用户该证书不是由权威机构颁发是不可信任的。 然后用机构的证书公钥解密得到证书的内容和证书签名内容包括网站的网址、网站的公钥、证书的有效期等。浏览器会先验证签名的合法性签名通过后浏览器验证证书记录的网址是否和当前网址是一致的不一致会提示用户。如果网址一致会检查证书有效期证书过期了也会提示用户。这些都通过认证时浏览器就可以安全使用证书中的网站公钥了。 服务器生成一个随机密码串pre_master_secret并使用服务器的公钥对其进行加密。 5客户端将加密的随机密码串传送给服务端。 6服务器用自己的私钥解密得到随机密码串私钥然后通过该随机密码串把网页内容进行对称加密并传输给浏览器。 7浏览器用之前生成的私钥解密算法获取网页内容。
HTTPS优缺点
优点
1使用HTTPS协议可认证用户和服务器确保数据发送到正确的客户机和服务器 2HTTPS协议是由SSLHTTP协议构建的可进行加密传输、身份认证的网络协议要比HTTP安全可防止数据在传输过程中被窃取、改变确保数据的完整性。 3HTTPS是现行架构下最安全的解决方案虽然不是绝对安全但它大幅增加了中间人攻击的成本。
缺点
1相同网络环境下HTTPS协议会使页面的加载时间延长耗电增加。此外HTTPS协议还会影响缓存增加数据开销和功耗。 2HTTPS协议的安全是有范围的在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。 3SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下中间人攻击一样可行。 4SSL证书需要钱功能越强大的证书费用越高个人网站、小网站没有必要一般不会用。 5SSL证书通常需要绑定IP不能在同一IP上绑定多个域名IPv4资源不可能支撑这个消耗。
HTTP请求消息和响应消息
在HTTP请求和响应的过程中传递的数据块就叫HTTP消息包括要传送的数据和一些附加信息并且要遵守规定好的格式。
请求消息
请求消息是指客户端向服务器端发送请求时所携带的数据块来自客服端。 请求方式用来规定客户端与服务器端联系的类型。 HTTP协议中客户端8种请求方式如下
请求方式说明Get向特定资源发出请求请求指定页面信息并返回实体主体Post向指定资源提交数据进行处理请求提交表单、上传文件可能导致新的资源的建立或原有资源的修改Put向指定资源位置上上传其最新内容从客户端向服务器传送的数据取代指定文档的内容Head与服务器索与get请求一致的相应响应体不会返回获取包含在小消息头中的原信息与get请求类似返回的响应中没有具体内容用于获取报头opions返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能允许客户端查看服务器性能Delete请求服务器删除request-URL所标示的资源*请求服务器删除页面Trace回显服务器收到的请求用于测试和诊断ConnectHTTP/1.1协议中能够将连接改为管道方式的代理服务器
响应消息
响应消息是指服务器端向客户端进行响应请求时所携带的数据块来自服务端
在响应消息中对于客户端的每一次请求服务器端都要给予响应在响应的时候我们可以通过状态码告诉客户端此次请求是成功还是失败。
状态代码由3位数字组成表示请求是否被理解或被满足。HTTP响应状态码的第一个数字定义了响应的类别后面两位没有具体的分类第1位数字有5种可能的取值大致了解 1**请求已接收需要继续处理。 2**请求已成功被服务器接收、理解并接受。 3**为完成请求客户端需进一步细化请求。 4**客户端的请求有错误。 5**服务器端出现错误。
HTTP协议常见的状态码
状态码说明200表示服务器成功处理了客户端的请求302表示请求的资源临时从不同的URI响应请求但请求者应继续使用原有位置来进行以后的请求404表示服务器找不到请求的资源400表示客户端请求有语法错误500表示服务器发生错误无法处理客户端的请求
更多关于Linux的知识请前往博客主页查看编写过程中可能由于能力有限难免出现问题敬请指出谢谢。