网络爬虫深究-初识HTTP和https常识
网络爬虫专题——HTTP基本原理
- URI和URL、URN的关系
- 超文本
- HTTP和HTTPS
URI和URL
首先,我们来了解一下URI和URL,URI,即统一资源标志符,URL,即统一资源定位符。
例如,https://github.com/favicon.ico,它是一个URL,也是一个URI。既有这样的一个图标资源,我们用URL/URI来唯一指定了它的访问方式,这其中包括了访问协议HTTPS、访问路径(即根目录)和资源名称favicon.ico。通过这样一个链接,我们便可以从互联网上到这个资源,这就是URL/URI。
URL是URI的子集,也就是说每个URL都是URI,但不是每个URI都是URL。那么,什么样的URI不是URL呢?URI还包括一个子类叫作URN,即统一资源名称。
URN只命名资源而不指定如何定位资源,比如urn:isbn0451450523指定了一本书的ISBN,可以唯一标识这本书,但是没有指定到哪里定位这本书,也就是URN。URL、URN和URI的关系可以用图表示。
但是在目前的互联网,URN的使用非常少,几乎所以的URI都是URL,所以一般的网页链接我们可以称之为URL,也可以称之为URI,我个人习惯称之为URL
超文本
接下来,我们再了解一个概念——超文本,其英文名称叫作Hypertext,我们在浏览器里看到的网页就是超文本解析而成的,其网页源代码是一系列HTML代码,里面包含了一系列标签,比如img显示图片,P指定显示段落等。浏览器解析这些标签后,便形成了我们平常看到的网页,而网页的源代码HTML就可以称作超文本。
例如,我们在Chrome浏览器里面打开任意一个页面,如淘宝首页,右击任一地方并选择"检查"项(或者直接按快捷键F12),即可打开浏览器的开发者工具,这时在Elements选项卡即可看到当前网页的源代码,这些源代码都是超文本。
HTTP和HTTPS
在淘宝的首页https://www.taobao.com/中,URL的开头会有http或https,这个就是访问资源需要的协议类型,有时我们还会看到ftp、sftp、smb开头的URL,那么这里的ftp、sftp、smb都是指的协议类型。在爬虫中,我们爬取的页面通常就是http或https协议的,我们在这里首先来了解一下这两个协议的含义。
HTTP,中文名叫作超文本传输协议,HTTP协议是用于从网络传输超文本数据到本地浏览器的传输协议,它能保证高效而准确地传送超文本文档。HTTP由万维网协会和Internet工作小组IETF共同合作指定的规范,目前广泛使用的是HTTP1.1版本。
HTTPS的全称是Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入ssl层,简称为HTTPS。
HTTPS的安全基础是ssl,因此通过它传输的内容都是经过ssl加密的,它的主要作用可以分为两种:
- 建立一个信息安全通过,来保证数据传输的安全
- 确认网站的真实性,凡是使用了HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过CA机构颁发的安全签章来查询。
现在越来越多的网站和APP都已经向HTTPS方向发展。例如:
- 苹果公司强制所有iOS APP在2017年1月1日前全部改为使用HTTPS加密,否则APP就无法在应用商店上架
- 谷歌从2017年1月推出的Chrome56开始,对未进行HTTPS加密的网址链接亮出风险提示,即在地址栏的显著位置提醒用户"此网页不安全"。
- 腾讯微信小程序的官方需求文档要求后台https请求进行网络通信,不满足的域名和协议无法请求。
为了舒适的结果,眼前的坎坷路程即使再长都是值得的。