一起学python爬虫第二天

本文详细介绍了HTTP和HTTPS的区别,包括传输安全性、连接方式、端口、证书申请方式和速度等方面。此外,还讲解了HTTP请求的GET和POST方法,以及HTTPS的工作原理,包括客户端发起请求、服务端配置、证书传送、信息加密等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天给大家分享一些http和https,首先请大家看两幅图:
在这里插入图片描述
在这里插入图片描述
这两张图片的协议名不一样。
在这里插入图片描述

一、http和https

HTTP协议(HyperText TransferProtocol,超文本传输协议):就是服务器和客户端进行数据交互的一种形象。
比如:(智取威虎山片段,黑话就是http)
土匪:蘑bai菇,你du哪路?什么价?(什么人?到哪里zhi去?)
  杨子荣:哈!想啥来啥,想吃奶来了妈妈,想娘家的人,孩子他舅舅来了。(找同行)
  杨子荣:拜见三爷!
  土匪:天王盖地虎!(你好大的胆!敢来气你的祖宗?)
  杨子荣:宝塔镇河妖!(要是那样,叫我从山上摔死,掉河里淹死。)
  土匪:野鸡闷头钻,哪能上天王山!(你不是正牌的。)
  杨子荣:地上有的是米,喂呀,有根底!(老子是正牌的,老牌的。)
  土匪:拜见过阿妈啦?(你从小拜谁为师?)
  杨子荣:他房上没瓦,非否非,否非否!(不到正堂不能说。)
  土匪:嘛哈嘛哈?(以前独干吗?)
  杨子荣:正晌午说话,谁还没有家?(许大马棒山上。)
  土匪:好叭哒!(zhuan行,是把老手)
  杨子荣:天下大耷拉!(不吹牛,闯过大队头。)
  座山雕:脸红什么?
  杨子荣:精神焕发!
  座山雕:怎么又黄了?
  杨子荣:防冷,涂的蜡!
  座山雕:晒哒晒哒。(谁指点你来的?)
  杨子荣:一座玲珑塔,面向青寨背靠沙!(是个道人。)

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer):http的安全版

我们常见的网址大多都是用http开头的。

http和https区别

一、传输信息安全性不同
1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。

2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。
什么是ssl?
ssl(Secure Sockets Layer 安全套接层)主要用于web的安全传输协议,在传输层对网络链接进行加密,保障在Internet上数据传输的安全。

二、连接方式不同

1、http协议:http的连接很简单,是无状态的。

2、https协议:是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。

三、端口不同

1、http协议:使用的端口是80。

2、https协议:使用的端口是443.

四、证书申请方式不同

1、http协议:免费申请。

2、https协议:需要到ca申请证书,一般免费证书很少,需要交费。

五、速度不同
HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

三、请求流程

1、当浏览器输入一个url(统一定位符,就是我们的网址),先解析url是否合法
2、浏览器检查是否存在缓存(就是看看以前有没有访问过)
3、发起http请求前,需要进行域名解析(DNS解析),获取对应的IP地址
4、发起TCP连接,经过三次握手
5、握手成功,浏览器向服务器发送http请求,发送请求数据包
6、服务器收到请求后,将数据返回给浏览器
7、浏览器收到返回的数据,解析数据,
8、浏览器再发送请求获取html页面的内容

四、什么是三次握手

在这里插入图片描述
第一次握手:建立连接,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认。syn:同步序列编号
第二次握手:服务器收到syn包,必须确认客户端的syn,同时自己也发送一个syn包(ack=x+1),此时服务器进入SYN_RCVD状态。
第三次握手:客户端收到服务器的ack=x+1,向服务器发确认包ack=y+1,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

比如我们打电话说一件事:
在这里插入图片描述

五、 http请求分为get和post

get是从服务器上获取数据
post是向服务器传送数据

get和post区别:

1、get请求参数通过url传递,post请求的参数放在请求体中
2、get请求比post请求更不安全,因为参数暴露在url中,所以不能用来传递敏感信息
3、get请求在url中传递的参数是有长度限制的,post没有
4、get请求参数会完整的保留在历史记录中,post请求不会
5、get请求进行url编码(百分号编码),post请求支持多种编码方式

六、HTTPS 的工作原理(了解)

我们都知道 HTTPS 能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或国家网站等等安全级别较高的服务都会采用 HTTPS 协议。
在这里插入图片描述
1、客户端发起 HTTPS 请求

这个没什么好说的,就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。

2、服务端的配置

采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl 就是个不错的选择,有 1 年的免费服务)。

这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7、传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

在这里插入图片描述

今天就整理到这了,下课!!! 一起努力呀!冲呀!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值