了解协议

爬虫工作流程
1、请求数据
协议:http https websocket
注意请求过程中的 headers(请求头)中User-Agent referer cookies
请求库:urllib requests
工具:fiddler charles

2、解析数据
正则表达式
bs4
lxml-xpath

3、数据持久化
文件:json txt
数据库:mysql mongodb
可视化

4、反爬
cookies应用
ip代理
验证码
js加密
selenium驱动chrome/phantomjs pyv8库

5、爬虫框架
scrapy
pyspider

一、协议
http 单向通信
特点
1、支持客户端/服务端模式 即 请求/响应模式
2、请求方法:get(参数在url) post
url:统一资源定位符 范式:http://host:port/path?key1=value1&key2=value2 默认端口 80
3、能够传递任意类型的数据对象,由content-type标记
4、无状态 ---> cookie session保存会话,识别身份

http请求/响应过程
1、客户端连接客户端 建立TCP套接字连接
2、客户端发送http请求
3、服务端接受请求,返回响应
4、服务端主动释放套接字,关闭tcp连接

http1.0 一次request 一次 response http1.1 多次request 多次response

返回状态码
1xx:请求已接受,继续处理
2xx:成功
3xx:重定向
4xx:客户端错误 请求语法有问题
5xx:服务器错误

常见的状态码
200 OK
204 No Content 表示请求已成功处理,但是没有内容返回
301 Moved Permanently 永久重定向,表示请求的资源已经永久的搬到了其他位置
303 See Other 表示请求资源存在另一个URI,应使用GET定向获取请求资源
304 Not Modified 意味着资源没有被修改因为请求头指定的版本跟本地保存的版本并未修改或没有匹配。这说明没有必要重新传输资源,因为客户端仍然有一个以前下载的副本。
305 被请求的资源必须通过指定的代理才能被访问。
308:使用原有的地址请求方式来通过新地址获取资源。
400 Bad Request 表示请求报文存在语法错误或参数错误,服务器不理解
401 Unauthorized 表示发送的请求需要有HTTP认证信息或者是认证失败了
403 Forbidden 表示对请求资源的访问被服务器拒绝了
404 Not Found 表示服务器找不到你请求的资源 也有可能服务器就是不想给你然后骗你找不到
500 Internal Server Error 表示服务器执行请求的时候出错了
503 Service Unavailable 表示服务器超负载或正停机维护,无法处理请求

https
默认端口 443
加密算法
1、对称加密 有一个密钥进行加密和解密 DES AES
客户端将加密数据和密钥发给服务端,服务端解密数据--->不可靠
2、非对称加密 有一个公钥和私钥 公钥加密 私钥解密 RSA ECC 一般用于少量数据加密(加密耗时较久)
服务端生成公钥和私钥---->客户端请求公钥--->客户端加密数据并发送给服务端--->服务端用私钥解密
相对可靠,注意中间人攻击
3、hash算法 MD5 加盐
把数据映射成固定长度的哈希值,不可逆(不能由哈希值算出原始数据)
可以用来检验数据完整性(数据修改后会生成新的哈希值)、数据压缩(哈希值长度固定)
https采用证书 避免中间人攻击 服务器把公钥放在证书里面发给客户端,中间人没有证书

websocket 双向通信 全双工
持久化协议,第一次请求仍然用http协议,只是客户端会带上将请求升级成websocket的参数
服务端收到客户端请求后,升级成websocket协议,陆续将数据发给客户端(服务端会保持连接),
后面有新数据生成,无需客户端再次请求,服务端会主动把数据发给客户端,例如斗鱼的弹幕

原文地址:https://www.cnblogs.com/woaixuexi9999/p/9241100.html

时间: 2024-10-13 23:58:44

了解协议的相关文章

Cisco-HSRP 热备份路由器协议-配置实例

同样的,首先做一些理论的扫盲.最起码要知道自己在配什么东西才行. 简介 HSRP(Hot StandbyRouter Protocol 热备份路由器协议)是Cisco的专有协议.HSRP把多台路由器组成一个"热备份组",形成一个虚拟路由器.这个组内只有一个路由器是Active(活动)的,并由它来转发数据包,如果活动路由器发生了故障,备份路由器将成为活动路由器.从网络内的主机来看,网关并没有改变. HSRP的工作过程 HSRP路由器利用Hello包来互相监听各自的存在.当路由器长时间没有

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

iOS---代理与协议以及通知的使用

一.代理 1.代理的介绍 代理是一种通用的设计模式 代理使用方式:A 让 B 做件事,空口无凭,签个协议. 所以代理有三部分组成: 委托方: 定义协议 协议   : 用来规定代理方可以做什么,必须做什么 代理方: 按照协议完成委托方的需求 2. 协议的介绍 协议是定义了一套公用的接口,是方法的列表,但是无法实现. 可以通过代理,实现协议中的方法. 协议是公用方法,一般写在一个类里面. 如果多个类都使用这个协议,可以写成一个peotocol文件. 3.代理的使用 (1)委托某人做某事   先建立一

如何生成HLS协议的M3U8文件

什么是HLS协议: HLS(Http Live Streaming)是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件. HLS协议应用: 由于传输层协议只需要标准的 HTTP 协议, HLS 可以方便的透过防火墙或者代理服务器, 而且可以很方便的利用CDN进行分发加速, 这样就可以很方便的解决大规模应用的瓶颈.并且客户端实现起来也容易. HLS 目前广泛地应用于点播和直播领域,HLS协议是将音视频流通过HTTP协

新Krypt技术服务等级协议

各位用户您好, 自2017年3月20日起,Krypt将对所有独立服务器(Outlet以及R2O除外)的新订单实施新的技术服务等级协议.这项全新的改革,将直接影响到您购买每台独立服务器的成本以及后台技术工单的响应速度.请您仔细阅读下文: 全新的Krypt技术服务等级协议(SLA's)将分为基础级别Basic, 精品级别Essential, 增强级别Plus以及专业级别Pro四个不同的等级,所有已经购买的独立服务器套餐将自动被划分为Legacy等级. Krypt独立服务器与云服务器的基础SLA包括可

Http协议头

######### #概览 ######### 超文本传输协议(Http: Hyper Text Transfer Protocol) :用于发送WWW方式的数据.采用TCP/IP协议,是一个无状态协议.采用了请求/响应模型. ######### #Http请求 Request ######### 客户端向服务器发送一个请求,看图: HTTp请求包括: 1) 请求方法.URI(uniform Resource identity 统一资源标识符question/23133/. URL:统一资源定位

网络基础协议之http协议

作为一个开发人员,掌握必要的 HTTP 协议十分重要,下面就通过本文记录自己对 HTTP 协议的理解.本文很长,希望你有耐心看完,会有很多收获的,面试的时候很受用. 首先让我们从一个问题入手,当我们在浏览器中输入  http://www.baidu.com/ 访问百度的时候浏览器做了哪些事情.(这里以 Chrome 浏览器为例) 首先 Chrome 搜索自身的 DNS 缓存.(如果 DNS 缓存中找到百度的 IP 地址,就跳过了接下来查找 IP 地址步骤,直接访问该 IP 地址.) 搜索操作系统

重温Http协议--请求报文和响应报文

http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过http协议做一个类似于解码的工作,这样浏览器才能理解这个数据,然后为我们展示出来百度首页. 这相当于是一种规范,网络中数据的传输在位于应用之下的各层(传输层,应用层)来完成的,在tcp/ip协议接收到数据时,我们是不能直接使用和浏览的,需要先通过一种规范来进行梳理,也就是解码,得到浏览器支持的一种格

数据链路层的协议分析

数据链路层目的是建立在物理层基础上,通过一些数据链路层协议,在不太可靠的物理链路上实现可靠的数据传输.即数据链路层提供网络中相邻节点之间可靠的数据通信. 数据链路层的主要功能是为网络层提供连接服务,并在数据链路连接上传送帧.依据功能可以分为有连接和无连接两种.本实验采用的是有应答,无连接服务. 无连接服务时,发送方的数据链路层要发送数据时,就直接发送数据帧.接收方的数据链路层能够接受数据帧,或者收到的帧校验正确,就像源主机数据链路层发送应答帧:不能接受或接受到的帧校验不正确时,就返回否定应答,发

tcp协议分析

tcp协议解析 TCP在网络OSI的七层模型中的第四层--Transport层,IP在第三层--Network层,ARP在第二层--Data Link层.在第二层上的数据,我们叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment. 我们程序的数据首先会打到TCP的Segment中,然后TCP的Segment会打到IP的Packet中,然后再打到以太网Ethernet的Frame中,传到对端后,各个层解析自己的协议,然后把数据交给更高层的协议处理 TCP头格式 TCP数据段格