从头看起学会Linux-3

如何搭建一个可使用的简易http服务器

1.搭建TCP服务器;
2.等待连接,接受数据;
3.针对客户端的业务请求进行功能处理后组织想要http数据信息发送给客户端;

我们之前提到过http还有一个加密版-https,这两者之间有何差异,加密又体现在那些地方?

单从两位大佬的名字看,一个比一个多一个s,差异就在这个s上,s是指SSL/TLS协议。在《图解HTTP》这本书中有描述说https就是披着SSL的http。是一种通过计算机网络进行安全通信的传输协议,经由http,利用SSL/TLS建立安全信道,加密数据包。https使用的主要目的是提供为网站服务器的身份认证,同时保护交换数据的隐私与完整性。
SSL/TLS是啥?TLS是传输层加密协议,前身是SSL协议,两者基本没区别。

http对上https

http的特点都有哪些?

1.无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
2.无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
3.基于请求和响应:基本的特性,由客户端发起请求,服务端响应
4.简单快速、灵活
5.通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性

总结:

HTTP协议传输数据以明文形式显示
针对无状态的一些解决策略:
场景:逛电商商场用户需要使用的时间比较长,需要对用户一段时间的HTTP通信状态进行保存,比如执行一次登陆操作,在30分钟内所有的请求都不需要再次登陆。

通过Cookie/Session技术
HTTP/1.1持久连接(HTTP keep-alive)方法,只要任意一端没有明确提出断开连接,则保持TCP连接状态,在请求首部字段中的Connection: keep-alive即为表明使用了持久连接。

我们可以看的出来http完美的展现了自己被创造出来的初衷,在稳定连接的基础上能及时有效的传递数据,但按照历史,第一个出来的总是要自己人顶替掉的,为什么,因为他不安全。

黑客攻击是十分威胁我们正常网络环境的,我们要和谐的传递数据和工作要怎么做呢?对,加密,让他无法截取到我们的数据就行了!这个时候他的儿子https就出来了!

https有如下特点:

内容加密:采用混合加密技术,中间者无法直接查看明文内容
验证身份:通过证书认证客户端访问的是自己的服务器
保护数据完整性:防止传输的内容被中间人冒充或者篡改

介绍一下加密算法先:

加密算法我们从前往后来逐步了解,一开始使用的是对称加密算法,何为对称呢?就是加密和解密算法是一样的,客户端和服务端都有一套同样的加密解密算法,这样,我们在进行数据通信的时候就不怕被发现了吧,不,你错了,如果想偷听你数据的是一个牛角尖,花大把时间跟你杠,那不是岌岌可危?

那就再来一套非对称加密算法,我们把加密解密算法设置成不一样的,在服务端我们利用RSA加密算法生成一对公钥和私钥,公钥用来加密数据,私钥用来加密后对应的解密,在建立连接前,我们把公钥传递给客户端,客户端使用公钥加密数据发送给服务端,然后服务端用私钥解密。如此这般安全了吧?不,你又天真了,如果要监听你的不仅是个牛角尖还是个运气仔,在你第一次通讯是就拦截了你的公钥,那也就完了。

**,那不是很烦?放心,技术大牛给你解决了。如果我们给公钥建立一个身份,让公钥不至于被第三方掉包,骗到客户端和服务端。来了,它叫签名证书,由权威机构颁发的绝对公正证书,标记公钥是可以用的你就用,没有标记可以用的你就不用,这样不就解决了。确实,这样的解决极大的降低了数据传输安全风险。

回到之前,我们再来了解一下http通讯建立
在这里插入图片描述

客户端输入URL回车,DNS解析域名得到服务器的IP地址,服务器在80端口监听客户端请求,端口通过TCP/IP协议(可以通过Socket实现)建立连接。HTTP属于TCP/IP模型中的运用层协议,所以通信的过程其实是对应数据的入栈和出栈。

在这里插入图片描述

安全性考虑:

HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用
SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行
中间人攻击(MITM攻击)是指,黑客拦截并篡改网络中的通信数据。又分为被动MITM和主动MITM,被动MITM只窃取通信数据而不修改,而主动MITM不但能窃取数据,还会篡改通信数据。最常见的中间人攻击常常发生在公共wifi或者公共路由上。

成本考虑:

SSL证书需要购买申请,功能越强大的证书费用越高
SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗(SSL有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持,Windows
XP就不支持这个扩展,考虑到XP的装机量,这个特性几乎没用)。
根据ACM CoNEXT数据显示,使用HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电。
HTTPS连接缓存不如HTTP高效,流量成本高。
HTTPS连接服务器端资源占用高很多,支持访客多的网站需要投入更大的成本。
HTTPS协议握手阶段比较费时,对网站的响应速度有影响,影响用户体验。比较好的方式是采用分而治之,类似12306网站的主页使用HTTP协议,有关于用户信息等方面使用HTTPS。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值