seo站内优化,企业网站建设内容规划,wap网站,京东这样的网站是怎么做的HTTP协议概念
HTTP协议#xff08;HyperText Transfer Protocol#xff0c;超文本传输协议#xff0c;属于应用层#xff09;是用于从服务器传输超内容到本地浏览器的传送协议。是一个无状态的协议
想了解http#xff0c;就需要了解TCP#xff0c;IP协议。因为http是基… HTTP协议概念
HTTP协议HyperText Transfer Protocol超文本传输协议属于应用层是用于从服务器传输超内容到本地浏览器的传送协议。是一个无状态的协议
想了解http就需要了解TCPIP协议。因为http是基于TCPIP层上面的。如下图所示 整张图应该从下边向上看假设别人想发一条信息给我的电脑。首先是通过网络把信息传导到的电脑但不能说我的电脑对于所有的信息都接受我会判断信息之后在处理信息这些就是七层模型做的事情。一步一步分开来看 并用打电话这一创建的例子来对应
物理层 包括物理连网媒介实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西。它规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。这就相当于电信公司的信号发射塔接收信号而已数据链路层 数据链路层主要作用是控制网络层与物理层之间的通信。它保证了数据在不可靠的物理线路上进行可靠的传递。它把从网络层接收到的数据分割成特定的可被物理层传输的帧保证了传输的可靠性。相当于发射塔让接受的信号更稳定方便下一层的解读网络层 很多人经常混淆2层和3层的相关问题简单来说如果你在谈论一个与IP地址、路由协议或地址解析协议ARP相关的问题那么这就是第三层的问题。 网络层负责对子网间的数据包进行路由选择它通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中两个节点的最佳路径。另外它还可以实现拥塞控制、网际互连等功能 相当于我们打一个长途电话当前连接的发射站不能直接传递给另一用户需要先传递给附近的发射站 到这里为止其实信息还没有传递到我们的电脑可以理解为信息在路由网络间传递。传输层 是OSI模型中最重要的一层它是两台计算机经过网络进行数据通信时,第一个端到端的层次起到缓冲作用。当网络层的服务质量不能满足要求时它将提高服务以满足高层的要求而当网络层服务质量较好时它只需进行很少的工作。另外它还要处理端到端的差错控制和流量控制等问题最终为会话提供可靠的,无误的数据传输。相当于我们找到了最后的信号站可以直接发送信号给通话者但是这层会做一些数据的整合等工作会话层 会话层负责在网络中的两节点之间建立和维持通信并保持会话获得同步它还决定通信是否被中断以及通信中断时决定从何处重新发送。表示层 表示层的作用是管理数据的解密与加密如常见的系统口令处理当你的账户数据在发送前被加密在网络的另一端表示层将对接收到的数据解密。另外表示层还需对图片和文件格式信息进行解码和编码。 相当于发射塔给手机发送一些压缩的信息我们手机接收到后解码应用层 简单来说应用层就是为操作系统或网络应用程序提供访问网络服务的接口包括文件传输、文件管理以及电子邮件等的信息处理。 应用层协议的代表包括Telnet、FTP、HTTP、SNMP等。 这就是真正的收到信息相当于我们听到了对方的声音这次对话完成了
总结起来就是 信息发出(www
---发射塔收到不稳定信息流物理层--- 发射塔整理信息流链路层--- 发射塔转给离接收人更近的发射塔网络层IP--- 发射塔向接收人发送信息传输层TCP--- 通话建立会话层 --- 解码信息表示层 --- 发出声音给接收人应用层HTTP看到信息
对于HTTP网络应用我们在网络层用的是IP在传输层用的是TCP。 IP internet protocal。顾名思义网络协议。他能确保计算机之间在网络上互相通信但是他不检查消息是否以发送次序到达而没有损坏因此我们需要上一层来检验消息。于是有了TCP层 TCP 保证信息正确次序内容不变。同时引入端口分发给不同的服务。同时分割数据为更小的ip包到达时重组。 HTTP 当信息解读好我们传给HTTP层即为应用层。超文本传输协议HTTPHyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
以上是对支撑HTTP的网络七层的概括我们需要理解为什么要在http层下面有那么多层每一层的目的是什么。
明白了这些之后问题来了这七层是怎么知道自己应该怎么解读数据而不是说TCP层解读HTTP层。这里面就是网络数据的封装和传递了 从这个图中我们可以看到每一层的数据都会被一个这层的头信息包裹。 之后我们在接收到信息时再一层一层读取信息
讲完http我们会发现我们传递的信息在网络上经过那么多物理层的传输保不准会被别人截获而我们却一点也不知道。于是我们想到要加密我们传输的数据。因为只有http层信息是我们要的所以在这一层下面加入一层来加密信息。这一层就是SSL层同时我们如果想传给ssl层我们用端口443. ssl层简称安全套阶层主要就是加密解密。 一开始我们会说我们就让服务器给我们一个公钥每次用他来解密不就行了。但是这种办法不可以因为别人同样可以截获你的公钥毕竟公钥也是在网络上传递的。 于是我们就要想一种办法让我们的公钥也被加密并且这个加密方式是在服务器或者我们电脑上进行的这样才安全
HTTPS协议
HTTPS全称Hypertext Transfer Protocol over Secure Socket Layer简单来讲是HTTP的安全版。即HTTP下加入SSL层HTTPS的安全基础是SSL。其所用的端口号是443。
SSLSecure Socket Layer安全套接字层通过使用证书认证来确保客户端和网站服务器之间的通信数据是加密安全的。SSL协议位于TCP/IP协议与各种应用层协议之间。
TLSTLS(Transport Layer Security传输层安全协议)用于两个应用程序之间提供保密性和数据完整性。SSL和TLS的主要区别?
TLS的主要目标是使SSL更安全并使协议的规范更精确和完善。
说到HTTPS肯定少不了加解密算法我们来了解下相关内容
有两种基本的加解密算法类型 1、对称加密symmetrcic encryption密钥只有一个加密解密为同一个密码且加解密速度快典型的对称加密算法有DES、AESRC53DES等例如我们创建一个带密码口令的加密压缩包。当你下次要把这个压缩文件解开的时候你需要输入【同样的】密码。在这个例子中密码/口令就如同刚才说的“密钥”。 对称加密主要问题是共享秘钥除你的计算机客户端知道另外一台计算机服务器的私钥秘钥否则无法对通信流进行加密解密。解决这个问题的方案是非对称加密。 2、非对称加密使用两个秘钥公共秘钥和私有秘钥。私有秘钥由一方密码保存一般是服务器保存另一方任何人都可以获得公共秘钥。一般来说指:加密时使用公钥,解密时使用私钥。 这种密钥成对出现且根据公钥无法推知私钥根据私钥也无法推知公钥加密解密使用不同密钥公钥加密需要私钥解密私钥加密需要公钥解密相对对称加密速度较慢典型的非对称加密算法有RSA、DSA等。
如图 总结及答疑
① 证书验证阶段
浏览器发起 HTTPS 请求服务端返回CA证书(包含公钥)客户端验证证书是否合法如果不合法则提示告警
② 数据传输阶段
当证书验证合法后在本地生成随机数通过公钥加密随机数并把加密后的随机数传输到服务端服务端通过私钥对随机数进行解密服务端通过客户端传入的随机数构造对称加密算法对返回结果内容进行加密后传输
为什么数据传输是用对称加密
非对称加密的加解密效率是非常低的而在https 的应用场景中通常客户端端与服务端之间存在大量的ajax交互非对称加密的效率是无法接受的
另外在 HTTPS 的场景中只有服务端保存了私钥一对公私钥只能实现单向的加解密所以 HTTPS 中内容传输加密采取的是对称加密而不是非对称加密。
为什么需要 CA 认证机构颁发证书
HTTP 协议被认为不安全是因为传输过程容易被监听、伪造服务器而 HTTPS 协议主要解决的便是网络传输的安全性问题。
首先我们假设不存在认证机构任何人都可以制作证书这带来的安全风险便是经典的“中间人攻击”问题。 “中间人攻击”的具体过程如下 过程原理
本地请求被劫持如DNS劫持等所有请求均发送到中间人的服务器中间人服务器返回中间人自己的证书客户端创建随机数通过中间人证书的公钥对随机数加密后传送给中间人然后凭随机数构造对称加密对传输内容进行加密传输中间人因为拥有客户端的随机数可以通过对称加密算法进行内容解密中间人以客户端的请求内容再向正规网站发起请求因为中间人与服务器的通信过程是合法的正规网站通过建立的安全通道返回加密后的数据中间人凭借与正规网站建立的对称加密算法对内容进行解密中间人通过与客户端建立的对称加密算法对正规内容返回的数据进行加密传输客户端通过与中间人建立的对称加密算法对返回结果数据进行解密
由于缺少对证书的验证所以客户端虽然发起的是 HTTPS 请求但客户端完全不知道自己的网络已被拦截传输内容被中间人全部窃取。
中间人攻击总结起来一句话就是客户端不知道CA证书是不是合法的谁都可以冒充合法的服务器从而获取到真实的客户端生成的内容及随机数相关的值然后中间人再利用获取到这些值去和真实的服务器进行https请求这个过程是合法的因为中间人这个服务器拿的真实的客户端数据模仿真实的客户端请求。
浏览器如何验证证书的合法性
验证证书上的域名、有效期等信息是否正确。判断证书来源是否合法。每份签发证书都可以根据验证链查找到对应的根证书操作系统、浏览器会在本地存储权威机构的根证书利用本地根证书可以对对应机构签发证书完成来源验证判断证书是否被篡改。需要与 CA 服务器进行校验判断证书是否已吊销。通过CRLCertificate Revocation List 证书注销列表和 OCSPOnline Certificate Status Protocol 在线证书状态协议实现其中 OCSP 可用于第3步中以减少与 CA 服务器的交互提高验证效率
只有认证机构可以生成证书吗
从技术上角度来看谁都可以生成证书只要有证书就可以完成网站的 HTTPS 传输。但是浏览器会提示风险。
用了 HTTPS 会被抓包吗
会但是得是用户授权了同意了访问该网站只要是用户主动授权访问风险网站都可能造成数据被中间人抓包