爬虫代理http协议和https协议的区别

1.HTTP和HITTPS的基本概念
HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
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中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
2.HTTP和HTTPS的区别
• 二者都是网络传输协议,https是http的升级版、安全版,https是在http基础上进行加密的。
• 连接方式不同:http的连接很简单,是无状态的;https 协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
• http是超文本传输协议,信息是明文传输;https则是具有安全性的ssl加密传输协议。
• http的端口是80;https的端口是443。
• https需要ca证书申请,一般免费证书较少,因而需要一定费用(证书其实就是一对公钥和私钥)。
3.HTTP协议过程
当我们在浏览器中输入URL后,会发生什么?比如https://www.baidu.com
我们可以用curl -v https://www.baidu.com 来研究这个过程,会发现总共有4个子过程。
1、查找域名对应的IP地址
Rebuilt URL to: https://www.baidu.com/* Trying 14.215.177.38…
我们可以通过nslookup www.baidu.com模拟这个过程,dns服务器返回两个IP地址,curl会随机选用其中一个IP服务器进行访问。
2、向IP对应的服务器发送SSL协商请求,进行SSL协商
Connected to www.baidu.com (14.215.177.38) port 443 (#0)
下图是通过Wireshark抓包获取的协商过程。
3、SSL协商完成后,向IP对应服务器发起GET请求
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
网站会检查是不是真的浏览器访问。需加上User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.1276.73 Safari/537.36,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法。
4、服务器响应请求,发回网页内容
< HTTP/1.1 200 OK
< Connection: keep-alive
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
服务器一般会使用cookie来标识用户,如果接受并带上该cookie继续访问,服务器会认为你是一个已标识的正常用户。因此,大部分网站需要使用cookie的来爬取内容。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
爬虫是长期进行的任务,所以需要配合代理才能更好的获取数据,亿牛云爬虫代理加强版可以让我们爬虫程序长期稳定的进行数据采集。

热门文章

暂无图片
编程学习 ·

JS面试题

霖呆呆的近期面试128题汇总(含超详细答案) | 掘金技术征文 由浅入深,66条JavaScript面试知识点 2020 前端面试 | 第一波面试题总结 2020 前端面试 | 第二波面试题总结 window.onload和$(document).ready()区别 window.onload必须等到页面内的所有元素加载完毕后才能执行 所有元…
暂无图片
编程学习 ·

SSCMS部署Linux

一、进入手册:https://sscms.com/ 二、在首页点击,如下位置:三、点击快速上手,进入页面如下:四、点击linux中运行SSCMS https://sscms.com/docs/v7/getting-started/using-linux.html#_1%E3%80%81%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85 根据里面的步骤一步步进行…
暂无图片
编程学习 ·

selenium 点击按钮,打开新标签页后,无法定位新标签页的元素

使用selenium爬取页面时,在弹出浏览器界面上我们明明看到已经自动到达新标签页,却无法定位新标签页的元素原因:实际上程序并没有随浏览器上所看的标签页改变而该改变,也就是说我们在浏览器上看到已经到达标签2,实际上程序默认的还是标签1解决方案:browser.switch_to_wind…
暂无图片
编程学习 ·

CSS滚动指示器

一、CSS滚动指示器 滚动指示器指的是页面的顶端会有一个进度条,指示滚动的进度。效果如下GIF所示(点击播放):CSS滚动指示器指的是不借助JavaScript,纯CSS实现滚动进度效果。 二、传统的实现方法 传统CSS实现方法由一个名叫 Mike的人首先提出,时间应该是16年,这个CodePen…
暂无图片
编程学习 ·

Tuxera NTFS for Mac在Mac教你快速进行安全传输文件教程

Mac系统在办公性能上更加高效快捷。但是Mac电脑在U盘读取上具有局限性。它并不能读取到NTFS格式的硬盘,那么我们可以用NTFS for Mac这款神器编辑读取。具体的安装步骤 1、双击下载好的安装包(.dmg)文件,会跳出安装会话框,点击"Install Tuxera NTFS"开始安装软件…
暂无图片
编程学习 ·

Centos Linux 服务器怎么在服务器内部访问网站?

有些时候,测试需要,想在服务器内部访问自己的网站看看能否正常打开。Windows的服务器一般直接http://localhost/,或者网址就可以了。没有安装桌面环境的Linux怎么办呢?curl http://www.xyservice.com就可以访问http://www.xyservice.com这个网址了。当然,是直接把网页源代…
暂无图片
编程学习 ·

springboot 整合xcf 发布 webservice

Spring Boot集成webService在pom添加依赖<!--WerbService CXF依赖 start--> <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId> </dependency> <dependency><groupId>org.…
暂无图片
编程学习 ·

springboot整合poi导入excel案例

1.在pom.xml中添加poi依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.13</version></dependency><dependency><groupId>org.apache.poi</groupId><artifac…
暂无图片
编程学习 ·

火狐浏览器网页不显示文字内容

网页的内容是个表格。表头只显示了 一部分内容。问题页面如下:但是在谷歌浏览器里显示正常。然后发现火狐里面多个标签他只显示一行,后面的都消失了。改好后效果如下:
暂无图片
编程学习 ·

机器视觉打光技巧

光源专家的8个打光技巧 机器视觉系统中的照明系统是极其重要的一部分,它的好坏直接影响着后面的图像处理。在听了一位日本光源专家的讲座之前,我其实对照明并不太了解,不就是将图像照亮以至于相机能够拍到图像吗?但事实并非如此,照明远非增强图像亮度这样简单,好的照明系…
暂无图片
编程学习 ·

Flink原理与实现:Flink中的状态管理,keygroup,namespace

namespace维护每个subtask的状态上面Flink原理与实现的文章中,有引用word count的例子,但是都没有包含状态管理。也就是说,如果一个task在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需要重新计算。从容错和消息处理的语义上(at least once, exactly onc…
暂无图片
编程学习 ·

springboot静态资源无法加载最后原因竟然是拦截器没有生效

今天打开项目,发现页面的样式没了,用F12调试,果不其然,css,js等样式没有加载成功 后面看控制台发现报 No mapping for GET 静态资源。 很明显,访问静态资源的请求被springboot拦截了。 然后我又看自己写的拦截器 @Overridepublic void addInterceptors(InterceptorRegist…
暂无图片
编程学习 ·

postman引入文件实现参数化及中文乱码问题解决

1、首先,在postman中输入地址和参数,保证接口请求成功。可以在tests中添加断言2、将需要参数化的参数用变量表示,并将变量添加进全局变量中3、将需要参数化的参数写成CSV,TXT,JSON格式的文档。这里用的是csv格式的文件,其中name是变量名如果用txt格式的文件,多参数之间要用…
暂无图片
编程学习 ·

MySQL配置文件

MySQL配置文件 1.配置环境变量 新建MYSQL_HOME变量,变量值是包的路径。 2.然后再path中添加:%MYSQL_HOME%\bin 3.执行mysqld install命令当出现Service successfully installed时表示mysql服务安装完成 4.MySQL初始化 :输入: mysqld --initialize --console 执行完成后,会…
暂无图片
编程学习 ·

海思NNIE开发系列文章--转载

https://blog.csdn.net/zh8706/article/details/94554337海思NNIE开发系列文章:海思NNIE开发(一):海思Hi3559AV100/Hi3519AV100 NNIE深度学习模块开发与调试记录海思NNIE开发(二):FasterRCNN在海思NNIE平台上的执行流程(一)海思NNIE开发(三):FasterRCNN在海思NNIE平…
暂无图片
编程学习 ·

setuptools Command Reference

https://setuptools.readthedocs.io/en/latest/setuptools.html#command-reference alias - Define shortcuts for commonly used commands bdist_egg - Create a Python Egg for the project develop - Deploy the project source in “Development Mode” egg_info - Create …
暂无图片
编程学习 ·

数据挖掘常用算法有哪些?分类、聚类、预测、关联规则

数据挖掘常用算法1 分类在数据挖掘的发展过程中,由于数据挖掘不断地将诸多学科领域知识与技术融入当中,因此,目前数据挖掘方法与算法已呈现出极为丰富的多种形式。从使用的广义角度上看,数据挖掘常用分析方法主要有分类、聚类、估值、预测、关联规则、可视化等。从数据挖掘…
暂无图片
编程学习 ·

PTA7-16 一元多项式求导 (20分) 设计函数求一元多项式的导数

设计函数求一元多项式的导数。 题目在此 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。 输入样例::3 4…
暂无图片
编程学习 ·

【解惑】到底是“时间片“?还是“分时轮询“?

1、任务调度任务调度对于电子类或者自动化类专业小伙伴最早接触一般都是在接触RTOS后了,然而对于计算机相关专业的小伙伴应该在学《计算机操作系统》老师对这一块讲解的非常清楚了,包括一些性能指标的定义与计算等等,不过作者这里仅仅只针对RTOS进行讲解,大家感兴趣可以找一…