01 | 网页基础与爬虫基础-爬虫基础
Ⅰ. HTTP 基本原理
在本文中我会详细了解 HTTP 的基本原理,了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一步了解爬虫原理。
Ⅱ. URL 和 URI
这里我们简单了解即可,我就不写出全称。
URL:统一资源定位符
URI:统一资源标志符
举个例子:https://github.com/favicon.ico 是 Github 的网站图标链接,它是一个 URL 也是一个 URI 。即有这样的一个图标资源,我们用 URL /URI 来唯一指定了它的访问的方式,这其中包括了访问协议 https 、访问路径(/根目录)和资源名称 favicon.ico 。通过这样一个链接,我们便可以从互联网上找到该资源,这就是 URL/URI 。
Ⅲ. 超文本
接下来我们再了解一个概念——超文本,其英文名称叫做 hypertext ,我们在浏览器里看到的网页就是超文本解析而成的,其网页源代码是一系列 HTML 代码(HTML 不是真正的编程语言, JavaScript 才是真正的编程语言),里面包含了一系列标签,比如 img 显示的就是图片,p 指定显示段落等。浏览器解析这些标签后,便形成了我们平常看到的网页,而网页的源代码 HTML 就可以称作超文本。
例如,我们在 Chrome 浏览器里面打开任意一个页面,如淘宝首页,右键点击任意地方并选择 ”检查“(或 直接按快捷键 F12),即可打开浏览器的开发者工具,这时在 Elements 选项卡即可看到当前的网页源代码,这些网页的源代码,这些源代码文件都是超文本,如下图所示:
Ⅳ. HTTP 和 HTTPS
在淘宝的首页 https://www.taobao.com/ 中, URL的开头会有 http 或 https ,这就是访问资源需要的协议类型。有时,我们还会看到 ftp、sftp、smb 开头的 URL ,它们都是协议类型。在爬虫中,我们抓取的页面通常是 http 或 https 协议的,这里首先了解一下这两个协议的含义。
HTTP 的全称是 Hyper Text Transfer Protocol , 中文名叫做超文本传输协议。HTTP 协议是用于从网络传输超文本数据到本地浏览器的传输协议,它能保证高效而准确地传送超文本文档。HTTP 由万维网协会和 Internet 工作小组 IETF 共同合作制定的规范。
HTTPS 的全称是 Hyper Text Transfer Protocol over Secure Socket Layer(超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。——来源:百度百科
它的主要作用可以分为两种:
-
建立一个信息安全通道来保证数据传输安全。
-
确认网站的真实性。凡是使用了 HTTPS 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。
-
现在越来越多的网站和 App 都已经向 HTTPS 方向发展,例如:
-
苹果公司强制所有 IOS App 在2017年1月1日前全部改为使用 HTTPS 加密,否则 App 就无法在应用商店上架。
-
谷歌从2017年1月推出的 Chrome56 开始,对未进行 HTTPS 加密网址链接亮出风险提示,即在显著位置提醒用户 “此网站不安全”。
-
腾讯微信小程序的官方需求文档要求后台使用 HTTPS 请求网络通信,不满足条件的域名和协议无法请求。
-
Ⅴ. 什么是 Request 和 Response ? (HTTP 请求过程)
Gif 演示:
静态图片:
解析网页开发者工具各部分
随便点击一个条目,查看详细信息:
服务器会根据请求头( Requests Headers) 内的信息判断请求是否合法,进而做出对应的响应。
Response Headers 就是响应的一部分,例如包含了服务器的类型、文档型、日期等信息,浏览器接收到响应后,会解析响应的内容,进而渲染呈现网页内容。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击