session和cookie还有正则

1.session原理
session在服务器保存。----解决安全问题。
a.问题来了:服务器上的session,但是客户端请求发送过来,
服务器如何知道session_a,session_b,到底和那个请求对应。
b.所以为了解决这个问题:cookie就作为这个桥梁。
在cookie有一个sessionid字段,可以用来表示这个请求对应服务器中的哪一个session。
c.禁用cookie,一般情况下,session也无法使用。特殊情况下可以使用url重写技术来使用session。
d.url重写技术:将sessionid拼接到url里面。
session的生命周期:服务器创建开始,有效期结束(一般网站设定都是大约30分钟左右),就删除。
问一个问题:打开浏览器的一个网页,浏览器关闭,这个网页的session会不会失效?
答案: 不会 服务器到底删除不删除session,由session的生命周期决定,有效期结束,就会被删除

2.cookie字段
(1)Name : 该的名称。一旦创建, 该名称便不可更改。
(2)value : 该cookie 的值。如果值为Unicode 字符, 需要为字符编码。
如果值为二进制数据, 则需要使用BASE64 编码。
(3)Domain : 可以访问该cookle 的域名。例如, 如果设置为.zhihu.com , 则所有以zhihu.com 结尾的域名都可以访问该cookie。
(4)MaxAge : 该cookie 失效的时间, 单位为秒, 也常和Expires一起使用, 通过它可以计算出其有效时间。Max Age 如果为正数, 则该cookie 在Max Age 秒之后失效。如果为负数, 则关闭浏览器时cookie 即失效, 也不会以任何形式保存该cookie 。
(5)Path : 该cookie 的使用路径。如果设置为/path/ , 则只有路径为/ path / 的页面可以访问该cookie 。如果设置为/ , 则本域名下的所有页面都可以访问该cookieo
(6)Size 字段: 此Cookie 的大小。
(8)HTTP 字段: cookie 的httponly 属性。若此属性为true , 则只有在HTTP 头中会带有此Cookie 的信息, 而不能通过document.cookie 来访问此Cookie。
(9)Secure : 该cookie 是否仅被使用安全协议传输。安全协议有H TTP s 和SSL 等, 在网络上传输数据之前先将数据加密。默认为false。

3.会话cookie和持久cookie
会话cookie:Max Age 为负数,则关闭浏览器时cookie 即失效,保存在内存中的cookie。
持久cookie:Max Age 如果为正数, 则该cookie 在Max Age 秒之后失效。
保存在硬盘上的cookie
提两个专业名词:
持久化:将内存中数据持久化到硬盘上。其实就是数据保存到文件或者数据库中。
内存主要的作用就是由于速度快速度快,启动应用软件或者程序的时候,就会分配一定内存空间作为该程序运行内存。电脑关机.内存一丹清空,就会被清空。
序列化:将对象持久化到硬盘中。

4代理
1、代理作用
192.168.0.101
(1)突破自身IP 访问限制, 访问一些平时不能访问的站点。
(2)访问一些单位或团体内部资源: 比如使用教育网内地址段免费代理服务器,
就可以用于对教育网开放的各类FTP 下载上传, 以及各类资料查询共享等服务。
(3)提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区, 当有外界的信息通过时, 同时也将其保存到缓冲区中, 当其他用户再访问相同的信息时, 则直接由缓冲区中取屮信息传给用户, 以提高访问速度。
4、隐藏真实IP : 上网者也可以通过这种方法隐藏自己的IP , 免受攻击。对于爬虫来说, 我们用代理就是为了隐藏自身IP , 防止自身的被封锁。
2、代理的分类
(1)根据协议区分
根据代理的协议, 代理可以分为如下类别。
FTP 代理服务器:主要用于访问FTP 服务器, 一般有上传、下载以及缓存功能, 端口一般为21 、2121 等。
HTTP 代理服务器:主要用于访问网页, 一般有内容过滤和缓存功能, 端口一般为80 、8080 、3128 等。
SSL/TLS 代理:主要用于访问加密网站, 一般有SSL 或TLS加密功能( 最高支持128 位加密强度) , 端口一般为443 。
RTSP 代理:主要用于访问Real 流媒体服务器, 一般有缓存功能, 端口一般为554 。
Telnet 代理:主要用于telnet 远程控制( 黑客人侵计算机时常用于隐藏身份),端口一般为23 。
POP3/SMTP 代理:主要用于POP3/SMTP 方式收发邮件, 一般有缓存功能, 端口一般为110 / 25 。
SOCKS 代理:只是单纯传递数据包, 不关心具体协议和用法, 所以速度快很多, 一般有缓存功能, 端口一般为1080 。SOCKS 代理协议又分为SOCKS4 和SOCKS5 , 前者只支持TCP ,而后者支持TCP 和UDP , 还支持各种身份验证机制、服务器端域名解析等。简单来说,SOCKS4 能做到的SOCKS5 都可以做到, 但SOCKS5 能做到的SOCKS4 不一定能做到。
(2)根据匿名程度区分
根据代理的匿名程度, 代理可以分为如下类别。
高度匿名代理: 会将数据包原封不动地转发, 在服务端看来就好像真的是一个普通客户端在访问, 而记录的IP 是代理服务器的IPO
普通匿名代理: 会在数据包上做一些改动, 服务端上有可能发现这是个代理服务器, 也有一定几率追查到客户端的真实伊代理服务器通常会加人的HITP 头有HTTP_VIA 和HTTP_X_FORWARDED FOR 。
透明代理:不但改动了数据包, 还会告诉服务器客户端的真实IPO 这种代理除了能用缓存技术提高浏览速度, 能用内容过滤提高安全性之外, 并无其他显著作用, 最常见的例子是内网中的硬件防火墙。
间谍代理:指组织或个人创建的用于记录用户传输的数据, 然后进行研究、监控等目的的代理服务器。
3、代理的设置
proxies = {
‘http’:‘http://114.99.11.179:9999’,#http和https都可以用http作为key
}
response = requests.get/post(proxies = proxies)

5正则表达式
(1)元字符
a.匹配边界 ^起始 $ 终止
b.表示重复次数的
? -----0或1
*------->=0
±------>=1
{n,} ----->=n
{n,m}-----> >=n <=m
{n} -----=n
c.匹配文字
[]-----注意表示单字符
[abc] 表示a/b/c中的一个
\b----单词的边界
\s----表示空白的有换行符,制表符,空格
\d----表示数字
\w----数字字母下划线构成
. -----除换行符以外的数据 一般指一行数据
(2)re模块
a.使用步骤
1)导包 import re
2)将正则表达式编译成一个pattern对象
pattern = re.compile(r’正则表达式’,‘匹配模式’)

匹配模式有 re.s ----可以匹配换行符 re.i-----可以忽略大小写
****3)调用pattern方法(match,search,findall)匹配字符串
a.match(从头匹配只匹配一次)
match对象.group()—返回匹配结果内容
match对象.span()—匹配范围
b.seacher(从左到右依次匹配匹配一次 匹配到返回第一个结果)
seacher对象.group()
seacher对象.span()
c.findall()全文匹配匹配多次将所有匹配结果以列表形式返回
m=parrem.findall()
m为匹配结果列表
注意 使用分组进行匹配 m只记录分组内容,如果匹配多个分组m将以列表里套元祖形式返回
[(结果1,结果2,结果3)]
d.finditer方法:finditer方法:全文匹配,匹配多次,返回一个迭代器,迭代器里面存储的是match对象
迭代器= pattern.findall(
string,#要匹配的目标字符串
start,#要匹配目标字符串的起始位置(可选)
end#结束位置(可选)
)
什么是迭代器?
当有一种数据或者内容比较多的时候,可以将其分装迭代器。—通过for循环来使用这个迭代器就可以获取其中的每一个数据。
有__next__和__iter__。
可迭代对象?有__iter__方法对象。
e.split()按正则方法表示内容进行分割字符串,返回分割后的字符串list
pattern.split(目标字符串,maxsplit最大分割长度(可选))
f.sub:按正则表示的内容替换字符串(常用)
pattern.sub(
repl:替换成什么东西
string:把谁替换了
count:替换次数(默认全部替换)
)
注意repl可以是一个函数,要求是(1)必须带有一个参数,这个参数就是提前用p去匹配目标字符串得到的match对象(2)必须要有字符串形式返回值,作为替换内容

g.分组
分组在正则表达式中就是用()来表示的。一个括号就是一个分组。分组的作用主要有以下两个:
(1)筛选特定内容
(2)引用分组

h.贪婪非贪婪模式
(1)贪婪是用来控制,python默认是贪婪模式,所以默认所有的数量控制符都是取所能匹配的最大值。
(2)非贪婪(.
?)大法是用?来控制的,?放在数量控制符后面,表示数量控制符匹配最小的次数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值