网络爬虫基础知识:HTTP和HTTPS、cookie和session

一,HTTP基础

1,URL

统一资源定位符(URL),是对Web资源的引用,该资源指定了它在计算机网络上的位置以及用于检索它的机制。 URL是统一资源标识符(URI)的一种特定类型。URL最常出现在参考网页(http)上,但也是 用于文件传输(ftp),电子邮件(mailto),数据库访问(JDBC)和许多其他应用程序。
大多数网络浏览器在地址栏中在页面上方显示网页的URL。 典型的URL可以采用http://www.example.com/index.php?u_id=6的形式,指定协议(http),主机名(www.example.com),文件名(index.php)和参数(u_id=6)。

2,超文本

W3school

3,HTTP与HTTPS

HTTP (HyperText Transfer Protocol,超文本传输协议)详细规定了浏览器和万维网服务器之间互相通信的规则,是通过因特网传送万维网文档的数据传送协议。 HTTP是互联网上应用最为广泛的一种网络协议, 所有的Web文件都必须遵守这个标准。设计HTTP最初的目是为了提供一种发布和接收HTML页面的方法。

HTTPS (HyperText Transfer Protocol over Secure Socket Layer).是以安全为目标的HTTP 通道, 是安全的HTTP»在HTTP传输中加入SSL层, HTTPS的安全基础是SSL,因此加密详细内容就需要SSL,用于安全的HTTP数据传输。 https://URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层 (在HTTP与TCP之间) 。这个系统的最初研发由网景公司(Netscape)进行, 并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通信方法。 现在它被广泛用于万维网上安全敏感的通信。

4,HTTP请求过程

未完待续。。。。。。

二,爬虫基础

网络爬虫,就是一种从互联网上获取所需数据的技术,可用于为其它应用提供数据源。

1,爬虫分类

全网爬虫:爬取范围为整个互联网,主要为门户站点搜索引擎和大型网站服务采集数据。
聚焦爬虫:选择性地爬取根据需求的主题相关页面的网络爬虫。
增量式爬虫:对已下载网页采取增量式更新和只爬取新产生或者已经发生变化的网页的爬虫。
深层网络爬虫:爬取大部分内容不能通过静态URL获取、 隐藏在搜索表单后、 只有用户提交—些关键词才能获得数据的爬虫。

2,爬虫爬取数据的方式

爬虫能够爬取的网络资源类型是很多的。但通常都是文本信息,比如HTML代码。Python语言有许多库都能从网络上下载这类资源。这些库能够向服务器端发送HTTP请求,接收服务器的响应,并解析其响应体。
响应体中的数据格式与内容需要按照需求进行分析和提取。Python语言有许多库能完成这类工作。
分析并获得所需的数据后,需要将它们进行存储,以便后续应用的使用。比如用某种格式来保存,或者存入数据库。

三,cookie与session

1,静态页面与动态页面。

静态页面的内容是使用HTML语言编写的,其中的内容是固定的。优点是加载速度快,编写简单。缺点是维护性能差,不能根据条件动态产生网页的内容。
动态网页一般以数据库技术为基础, 可以与后台数据库进行交互与数据传递, 可以大大降低网站维护的工作量。 采用动态网页技术的网站网页的内容是可以根据条件的不同而进行改变的,从而可以实现更多的功能, 动态。如用户注册、 用户登录、等。 动态网页实际上并不是独立存在于服务器上的网页文件, 只有当用户请求时服务器才返回一个完整的网页。比如用户登录网站之后隔一段时间再登录,可能会继续维持登录状态,也可能需要重新登陆。这可以通过cookie和session配合实现。
session技术的出现,源于HTTP协议的无状态特征对长会话的不支持。

2,无状态HTTP和cookie

无状态HTTP指的是HTTP完成数据传输后会立即关闭网络连接而不保持连接状态,这样设计是为了在巨大的访问量中减轻服务器端的压力。
显然这样会带来一个问题:服务器无法知道两个请求是否来自同一个浏览器,这就是“无状态” 。因此,如果服务器端想要持续获取客户端的相关信息,就会增加客户端信息处理量与传输量。那么,怎样解决HTTP无状态的特性无法满足交互式web的需求呢?
可以在客户端首次访问服务器端后在本地保存这样一份相关信息数据,当客户端发起请求时,直接传输给服务器就行了,这份保存在本地的相关信息数据就叫cookie。服务器端只认cookie不认其他信息。这就让HTTP请求能发送客户端的状态。
问题又来了:既然服务器通过HTTP请求知道了这是一个来自客户端的信息,那么,这是来自那个客户端?
在这里插入图片描述

3,使用cookie与session保持状态

客户端在第一次向服务器发送请求后,服务器便会为这个客户端生成一个session对象,将请求中的相关信息数据保存在服务端。每个session都有自己的唯一标识号(sessionID),用于Session间进行识别。
实际上,cookie的产生还在session之后,它们都由服务器产生,但保存的地方不一样。服务器产生session后,会在请求响应中将session发送一份给客户端保存,这份保存在客户端的session就叫cookie。
好了,session与cookie都有了,它们是怎样这个配合工作从而让HTTP有了状态的呢?其实就是当客户端与服务器端建立过请求与响应后,只要客户端在之后的所有请求都应包括这个标识号,服务器会校对这个标识号以判断请求属于哪个session。

4,cookie与session的失效导致HTTP重归“无状态”

1,cookie失效,主要是过期失效,也会在被修改、手动删除后失效。
2,session失效,主要是过期失效。
只要一端失效,使得session与cookie无法匹配,就会导致HTTP重归“无状态”。
可以了解一下cookie与session相关的网络安全问题。

猜你喜欢

转载自blog.csdn.net/dangfulin/article/details/107842525
今日推荐