一、计算机如何从网络上获取数据
- 总的模式是:客户端-服务器模式(C/S模式)。客户端向服务器发送请求,而服务器给客户端以回应。这个过程中两方是不对等的(两方对等的模式:P2P模式)。
- 服务器一般称为“云”而客户端不只局限于传统PC,智能手机、物联网设备也可以归为客户端一类,以后泛指此类设备为“计算机”。
- 协议:计算机之间进行通信的格式,不同的协议如果不经过特殊处理,是不能够进行通信的。
- C/S模式主要的优势:可以使用专用的协议,有利于保密,更安全一些。主要的劣势:受到操作系统(平台)的约束,兼容性可移植性差一些。
- IP地址和域名:IP地址可以唯一标示网络上的一台计算机(当然不同网络上的计算机IP地址可以相同),而域名是为了让人们容易记忆而形成的,域名通过DNS服务器解析为IP地址。
- B/S模式:浏览器-服务器模式,其实也是C/S模式的一种,只不过客户端是浏览器。这里的服务器一般称为HTTP服务器或者叫Web服务器。
- B/S模式的优势:浏览器和操作系统无关,兼容性强。劣势:安全性差,因为一般都用HTTP协议,所以容易遭受攻击。
二、B/S模式的简单工作原理
- HTML文件:用于表示一个网页的基本元素
- 客户端脚本:目前一般是JavaScript,这个脚本在浏览器中执行,所以才叫客户端脚本。
- 服务端脚本:这些脚本在被请求的时候在服务器上执行。所用语言包括PHP、ASP.NET、JSP、Node.js等。
- 首先浏览器发出HTTP请求包(HTTP Request),包含目的URL,客户端的系统版本语言等、Cookie以及一些其他信息,目的URL标示了所请求的资源。
- 服务器在收到请求之后,需要做出回应,回复HTTP回应(HTTP Response),会返回一个HTTP状态码,如果资源存在可访问就返回对应的资源,否则会根据不同情况返回不同的状态码。注意这里资源有这样几种:第一是浏览器不可解析的文件(例如zip、doc等)以及HTML和JavaScript文件,这些文件就会直接回复给浏览器。第二是服务器端脚本,如果目的URL是一个服务端脚本,那么服务器首先会执行这个脚本,生成HTML文件再回复。
- 注意区别服务端脚本和客户端脚本,服务端脚本绝对不能让客户端获取到,如果被获取了就称为源码泄漏,是比较严重的安全问题。
三、HTTPS简介
- 为了解决HTTP的问题,在传输过程中数据必须用对称密码算法加密,以保证机密性。
- 如果只加密了也不行,没法保证完整性和不可抵赖性,这时候需要用到公钥密码算法。
- 只有公钥密码算法还是有问题,会出现中间人攻击的问题,所以还需要数字证书。
- HTTPS就是利用了数字证书来确保安全。
四、几个密码学概念
- 对称密码算法:加解密使用相同的密钥的密码算法
- 公钥密码算法:加解密使用不同的密钥的密码算法。
- 消息摘要:这个我们经常会用到,是把一个长消息“提炼”成一个唯一对应的短消息(消息摘要)。如果有两个长消息对应同一个短消息(消息摘要),那么称为“碰撞”。目前MD5和SHA-1已经存在碰撞,不安全,但是信息安全比赛中经常用到MD5。