网络爬虫专题——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请求进行网络通信,不满足的域名和协议无法请求。

网络爬虫深究-初识HTTP和https常识的更多相关文章

  1. python网络爬虫之初识网络爬虫

    第一次接触到python是一个很偶然的因素,由于经常在网上看连载小说,很多小说都是上几百的连载.因此想到能不能自己做一个工具自动下载这些小说,然后copy到电脑或者手机上,这样在没有网络或者网络信号不 ...

  2. 02.python网络爬虫第二弹(http和https协议)

    一.HTTP协议 1.官方概念: HTTP协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(www.world wide web) 服务器传输超 ...

  3. python3编写网络爬虫20-pyspider框架的使用

    二.pyspider框架的使用 简介 pyspider是由国人binux 编写的强大的网络爬虫系统 github地址 : https://github.com/binux/pyspider 官方文档 ...

  4. 13. Go 语言网络爬虫

    Go 语言网络爬虫 本章将完整地展示一个应用程序的设计.编写和简单试用的全过程,从而把前面讲到的所有 Go 知识贯穿起来.在这个过程中,加深对这些知识的记忆和理解,以及再次说明怎样把它们用到实处.由本 ...

  5. Python——初识网络爬虫(网页爬取)

    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫 ...

  6. 2.03_Python网络爬虫Http和Https

    一:HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法,以明文的形式传输,效率高,但是不安全 HTTPS ...

  7. [Python] 前程无忧招聘网爬取软件工程职位 网络爬虫 https://www.51job.com

    首先进入该网站的https://www.51job.com/robots.txt页面 给出提示: 找不到该页 File not found 您要查看的页已删除,或已改名,或暂时不可用. 请尝试以下操作 ...

  8. 初识html及网络爬虫概念

    网络爬虫 HTML超文本标记语言 HTTP协议 简单的网络请求 python模块模拟浏览器发送请求 爬虫小案例 爬虫简介 我们一般情况 都是通过浏览器正常访问服务端获取资源浏览器展示给用户看 爬虫 模 ...

  9. Python网络爬虫入门篇

    1.  预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用 ...

随机推荐

  1. nginx 和uwsgi的区别与作用

    在介绍nginx和uwsgi的区别和作用之前我们先介绍一下几个概念 1.WSGI WSGI的全称是Web Server Gateway Interface(Web服务器网关接口),它不是服务器.pyt ...

  2. 函数的参数python教程

    一:函数 什么是函数? 函数就类似于工具 提前定义之后可以反复使用 代码冗余 结构清晰 修改繁杂等问题 二:函数的语法结构 def 函数名(参数1,参数2) '''函数注释''' 函数体代码 retu ...

  3. Spring系列9:基于注解的Spring容器配置

    写在前面 前面几篇中我们说过,Spring容器支持3种方式进行bean定义信息的配置,现在具体说明下: XML:bean的定义和依赖都在xml文件中配置,比较繁杂. Annotation-based ...

  4. markdown介绍和使用(超全建议收藏)

    Markdown介绍 Markdown 其实在 2004 年就有了,不过之前一直很小众,这几年随着相关应用平台的发展,Markdown以其独到的优势迅速火起来了.Markdown编辑器使用一套格式标记 ...

  5. 使用Docker快速搭建Halo个人博客到阿里云服务器上[附加主题和使用域名访问]

    一.前言 小编买了一个服务器也是一直想整个网站,一直在摸索,看了能够快速搭建博客系统的教程.总结了有以下几种方式,大家按照自己喜欢的去搭建: halo wordpress hexo vuepress ...

  6. DP 专练

    A - 跳蚤电话 观察性质,可以发现每次连边的点一定是有祖先关系的,可以直接挂上去一个,也可以是在中间边上插入一个点. 所以我很自然的想到去计算树上的点的加入顺序,因为一但加入顺序确定,每一次的操作也 ...

  7. windows10使用wireshark抓取本机请求包

    1.管理员运行cmd 右键左下角windows图标,管理员运行Windows PowerShell 2.输入ipconfg查看本机ip和网关ip 3.执行命令 route add 本机ip mask ...

  8. SpringBoot 自定义配置

    有时候需要自己定义一些配置,比如SpringBoot没有提供Druid连接池的配置,需要我们自己写配置. 以在springboot中使用Druid为例. 依赖 <dependency> & ...

  9. WebSocket协议详解及应用

    WebSocket协议详解及应用(七)-WebSocket协议关闭帧 本篇介绍WebSocket协议的关闭帧,包括客户端及服务器如何发送并处理关闭帧.关闭帧错误码及错误处理方法.本篇内容主要翻译自RF ...

  10. Apache中commons包的各种jar的功能说明

    commons-logging.jar -----记录日志,通常和  log4j.jar共同使用 commons-beanutils.jar(1.1)                主要提供Bean的 ...