爬虫前置_HTTP基础

Nginx限流、防爬虫与安全配置实战:构建Web服务前置防线 在Web服务架构中,流量控制与安全防护是保障系统稳定性的基石。其核心原理在于通过算法策略对入口请求进行筛选、整形和过滤,防止恶意或过量访问压垮后端服务。从技术价值看,有效的流量治理能显著提升资源利用率、保障核心业务可用性并降低安全风险。常见的应用场景包括应对突发流量洪峰、防御自动化爬虫数据抓取以及加固常见Web漏洞。本文聚焦于利用Nginx原生模块,通过**精细化限流**(如漏桶算法)与**智能防爬虫**策略(如UA识别与行为分析),结合基础安全加固配置,提供一套可落地的工程实践方案,帮助开发者在应用层之前 阅读详情

URI, URL 与 URN

URI

* URI: 全称 Uniform Resource Identifier, 即统一资源标识符, 用来在互联网上唯一的标识某一特定的资源
* URI包含两个子集: URL 和 URN

URN

* URN: 全称 Universal Resource Name, 即统一资源名称, 只描述资源的名称, 而不定位 (很少使用)
	例如: urn:isbn:0451450523 指定了一本书的ISBN, 可以唯一标识一本书, 但不能定位这本书的资源

URL

* URL: 全称Universal Resource Locator, 即统一资源定位符, 用来在互联网上唯一的定位某一特定的资源
	例如: https://github.com/favicon.ico  定位到

URL的结构

scheme://[username:password@]hostname[:port][/path][;parameters][?query][#fragment]
* scheme: 协议, 常见协议有http, https, ftp等
* username, password: 用户名和密码, 有些URL需要指定用户名和密码才能访问
* hostname: 主机地址, 可以是域名或IP地址, 用于在网络中唯一标识一台主机
* port: 端口, 用于在一台主机上唯一标识一个程序
	http协议默认端口80, https协议默认端口443
* path: 路径, 即指定的资源在服务器上的目录地址
* parameter: 参数, 用来指定访问某个资源是的附加信息 (很少使用)
* query: 查询, 用来携带查询相关数据, 是现在常用的携带get请求参数的方式
	query以键值对的形式出现, 多个键值对以&分隔, 例如: ?wd=nba&ie=utf-8
* fragment: 片段, 是对资源描述的部分补充, 可以用作单页面路由, 也可以用作HTML锚点

HTTP与HTTPS

HTTP

HTTP全称 Hypertext Transfer Protocol, 即超文本传输协议, 规定了服务端和浏览器之间交换数据的格式和规则

HTTP版本及特点

版本产生事件主要特点发展现状
HTTP0.91991年不涉及数据报传输, 规定通信格式, 只能使用GET请求没有作为正式标准
HTTP1.01996年内容格式不限, 增加PUT, PATCH, HEAD, OPTIONS, DELETE作为正式标准
HTTP1.11997年持久连接, 节约带宽, HOST域, 管道机制, 分块传输编码正式作为标准并广泛应用
HTTP2.02015年多路复用, 服务器推送, 头信息压缩, 二进制协议等逐渐覆盖市场

HTTPS

* HTTPS: 全称 Hypertext Transfer Protocol over Secure Socket Layer, 是建立在SSL层基础之上的安全版的HTTP协议
* 该协议传输的内容都是经过SSL加密的
* SSL会建立一个信息安全通道, 保证数据传输的安全性
* SSL可以确认网站的真实性

HTTP请求

HTTP请求格式

* 请求首行(HTTP协议版本信息, 当前请求方式, URL等)\r\n
* 请求头(键值对)\r\n
* \r\n
* 请求体(get请求体为空, post请求为提交的数据)\r\n

请求方式

请求及描述

方法描述
GET请求页面并返回页面内容
HEAD类似于GET请求, 但没有响应的内容, 用于获取报头
POST用于提交表单或上传文件, 数据包含在请求体中
PUT用客户端发送的数据替代文档中的内容
DELETE请求服务器删除指定页面
CONNECT让服务器代替客户端访问其它网页
OPTIONS允许客户端查看服务器性能
TRACE回显服务器收到的请求, 用于测试或诊断

常用请求方式

* 常见的请求方式有: GET请求 和 POST请求
* 在浏览器地址栏输入网址并按回车, 就会发送一个GET请求
* 在登录页面填写用户名密码, 并点击登录按钮, 就会发送一个POST请求

GET请求与POST请求的区别

* GET请求的参数包含在URL中, 可以在地址栏看到, POST请求的参数包含在请求体中, 无法直接看到
* GET请求提交的数据最多1024字节, POST请求提交的数据没有大小限制

常见的请求头信息

* Accept: 指定客户端可以接受哪些类型的信息
* Accept-Langluage: 指定客户端可以接受的语言类型
* Accept-Encoding: 指定客户端可以接受的编码
* Host: 被请求的主机的IP和端口号, 即服务器或网管的位置
* Cookie: 服务器发送过来, 存储在浏览器本地的状态信息, 用于判断用户状态
* Referer: 标识请求是从哪个页面发过来的, 用于来源统计和防盗链
* User-Agent: 客户端使用的操作系统版本, 浏览器版本等信息, 通常是最简单的反爬机制
* Content-Type: POST请求携带的数据的类型

Content-Type与POST请求提交数据数据

Content-TypePOST提交数据的方式
application/x-www-form-urlencoded表单数据
multipart/form-data表单文件上传
application/jsonjson数据
text/htmlXML数据

HTTP响应

HTTP响应格式

* 响应首行(HTTP协议版本信息, 响应状态码)\r\n
* 响应头(键值对)\r\n
* \r\n
* 相应体(与请求对应的HTML页面)\r\n

响应状态码

状态码说明详情
100继续服务器已接收到请求的一部分, 正在等待其余部分
101切换协议请求者要求服务器切换协议, 服务器已确认并准备切换
200成功服务器已唱功处理了请求
201已创建请求成功, 并且服务器创建了新的资源
202已接收服务器已接收请求, 但尚未处理
203非授权信息服务器成功处理了请求, 但返回的信息可能来自另一个源
204无内容服务器处理了请求, 但没有返回内容
205充值内容服务器成功处理了请求, 内容被重置
206部分内容服务器成功处理了部分请求
300多种选择针对请求, 服务器可执行多种操作
301永久移动请求的网页已永久移动到新位置, 即永久重定向
302临时移动请求的网页暂时跳转到其它页面, 即暂时重定向
303查看其它位置如果原来的请求时POST, 重定向目标文档应该通过GET提取
304未修改此次请求返回的网页未经修改, 继续使用上次的资源
305使用代理请求这应该使用代理访问该网页
307临时重定向临时从其它位置响应请求的资源
400错误请求服务器无法解析该请求
401未授权请求没有进行身份验证或验证未通过
403禁止访问服务器拒绝此请求
404未找到服务器找不到请求的网页
405方法禁用服务器禁用了请求中指定的方法
406不接收无法使用请求的内容响应请求的网页
407需要代理授权请求者需要使用代理授权
408请求超时服务器请求超时
409冲突服务器在完成请求时发生冲突
410已删除请求的资源已永久删除
411需要有效长度服务器不接收不含有效内容长度标头字段的请求
412未满足前提条件服务器未满足请求者在请求中设置的某一个前提条件
413请求实体过大请求实体过大, 超出服务器的处理能力
414请求URI过长请求网址过长, 服务器无法处理
415不支持类型请求格式不被请求页面支持
416请求范围不符页面无法提供请求的范围
417未满足期望值服务器未满足期望请求标头字段的要求
500服务器内部错误服务器遇到错误, 无法完成请求
501未实现服务器不具备完成请求的能力
502错误网关服务器作为网关或代理, 接收到上游服务器的无效响应
503服务不可用服务器目前无法使用
504网关超时服务器作为网关或代理, 没有及时从上游服务器接收到响应
505HTTP版本不支持服务器不支持请求中使用的HTTP协议版本

常见响应头信息

响应头包含了服务器对请求的应答信息, 常见响应头信息如下:
* Date: 响应产生的日期
* Last-Modified: 响应资源的最后修改时间
* Content-Encoding: 响应内容使用的编码
* Server: 服务器信息, 如名称, 版本号等
* Content-Type: 响应文档的类型, 比如text/html表示HTML文档, application/x-javascript表示JavaScript文件, Image/jpeg表示图片文件
* Set-Cookie: 告诉浏览器将此内容保存在本地Cookie中, 下次请求时带上此Cookie信息
* Expires: 过期时间

响应体

响应体是服务器依据请求返回给浏览器的真正的内容信息, 是爬虫爬取的目标, 其内容可能是HTML文档, json数据, 或其它多媒体文档等

HTTP相关书籍推荐

  • 《计算机网络》
  • 《图解HTTP》
  • 《HTTP权威指南》
学习笔记【Day 20】鸿蒙PC应用在SD WAN MSTP场景用CodeArts test工具测试过程 多生成树协议(MSTP)作为二层网络高可靠、无环路的核心技术,其在鸿蒙 PC 上的兼容性与稳定性测试尤为重要。本文结合华为云 CodeArts TestPlan 全流程测试管理平台,详细拆解鸿蒙 PC 端 MSTP 功能的测试设计、环境搭建、执行验证。1.测试左移,保障迭代效率CodeArts TestPlan 将 MSTP 测试从后期集成阶段 “左移” 至开发早期,通过可复用用例库与自动化脚本,支持每次代码提交后的快速回归测试,避免网络功能稳定性因迭代被破坏。2.平台化工具破解复杂场景测试难题。 阅读详情

相关推荐

3、★☛基于STM32的手机通过wifi控LED灯√♠★

3、基于STM32的手机通过wifi控LED灯 文章目录3、基于STM32的手机通过wifi控LED灯1、Introduce介绍1.1、课题背景及其意义1.2、 国内外的研究状况2、方案的设计2.1、控制方案的确定2.2、控制方式的选择2.2.1、 单片机芯片的选择方案一方案二方案三方案四2.2.2、无线遥控模块的选择方案一方案二方案三3、硬件电路的设计3.1、系统的功能分析及体系结构设计3.1.1、系统功能分析3.1.2、系统总体结构3.2、模块电路的设计3.2.1、 STM32单片机核心电路设计3.2.

行走的皮卡丘 2928

Python爬虫如何快速入门

写了几篇网络爬虫的博文后,有网友留言问Python爬虫如何入门?今天就来了解一下什么是爬虫,如何快速的上手Python爬虫

学而思(xiejava的blog) 2132

新版PHP微信支付企业付款到零钱功能接口源码

PHP微信支付企业付款接口源码,微信企业付款到零钱功能接口源码下载开发详解: 参考 【微信支付企业付款api】开发文档条件:1、参数配置正确2、证书路径正确(必填),引入2个证书 即可实现付款

网络爬虫开发(一)-爬虫基础——基本介绍-爬虫是请求网站并提取数据的自动化程序、爬虫的基本工作流程 & 实例之发送http请求-爬取网址的网页信息

可以把互联网比做成一张“大网”,爬虫就是在这张大网上不断爬取信息的程序爬虫是请求网站并提取数据的自动化程序向指定的URL发送http请求获取响应(HTML、XML、JSON、二进制等数据)处理数据(解析DOM、解析JSON等)将处理好的数据进行存储。

weixin_44867717的博客 812

Python爬虫前置知识与爬虫步骤解析

Python爬虫是一项强大的技术,掌握了前置知识和基本步骤后,可以帮助我们更好地获取网络信息并处理数据。在进行爬虫开发时,需要注意遵守法律法规和网站规定,不得恶意爬取数据。

weixin_44435602的博客 982

Python爬虫基础

本文主要介绍爬虫基础概念、HTTPHTTPS协议的简单介绍、浏览器开发者工具。

m0_63845988的博客 3052

网络爬虫开发

网络爬虫开发 - 第一章 课程介绍 + 什么是爬虫 + 爬虫的意义 + 课程内容 + 前置知识 1.什么是爬虫 可以把互联网比喻成一张大网,爬虫就是在这张大网上不断爬取信息的程序 所以,一句话总结: 爬虫是请求网站并提取数据的自动化程序 爬虫的基本工作流程如下: 向指定的URL发送http请求 获取响应(HTML、XML、JSON、二进制等数据) 处理数据(解析DOM、JSON等) 将处理好的...

Calla_Lj的博客 840

小白学 Python 爬虫(7):HTTP 基础

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(...

极客挖掘机 2386

爬虫(1)概述和前置知识

讲述了爬虫的基本概念以及想要深入学习的前置知识

jayden 880

Python网络爬虫半小时入门指南

文章目录Python 爬虫入门指南网络爬虫前置知识年轻人的第一个爬虫程序Requests库安装Requests库核心方法介绍Response对象response.textresponse.status_coderesponse.encodingresponse.contentresponse.json() Python 爬虫入门指南 网络爬虫 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 通常,爬虫程序由三部分组成,获得网页、解析网页和存储数据。 前置知识 大概科普级别就

努力推石头的西西弗斯 1048

《自然语言处理实战入门》 ---- 第二课 :网络爬虫简介

目录1. 网络爬虫 1.1 网络爬虫的合法性 1.2 网络爬虫前置技术 1.3 目标网站进行调研 1.3.1 robots.txt 1.3.2 网站所使用的技术...

shiter编写程序的艺术 937

快速上手Pytrch爬虫之爬取某应图片壁纸

必应是微软推出的搜索引擎,相比于百度具有广告少的显著优点,比较良心。幸运的是已经有人完成了这项工作,具体请看这个网站:必应每日高清壁纸(这个网站收录了必应每天的主页图片,并且提供直接下载(管理猿太良心了,祝愿少掉一些头发,少写一些bug )。但是博主发现这个网站缺少一个一键全部下载功能,只能一张一张图片手动下载,如果要把所有图片都下载下来,非常麻烦,因此用python写了一个下载网站上所有图片的小爬虫,分享给大家。

小李的研究生学习日记 1658

Python爬虫学前准备

专业术语:网络爬虫(又被称为网页蜘蛛,网络机器人)网络爬虫是一种按照一定规则自动抓取互联网信息的程序或脚本,也被称为网页蜘蛛、网络机器人、网页追逐者等。随着大数据时代的来临,爬虫在互联网中的地位越来越重要,可以高效地获取我们感兴趣的信息。网页爬取是指通过网络爬虫技术从目标网站上抓取所需的数据,并进行必要的数据清洗和处理。网页爬取可以帮助我们更加高效地获取我们所需要的数据,从而提高工作效率。合法使用:使用爬虫技术要遵循相关法律和规定,不要进行违法、非法活动。尊重 robots.txt 协议。

鹅不糊涂的博客 819

网络爬虫学习前置知识

Scrapy爬虫的使用 步骤 创建一个工程和spider模版 编写spider 编写item pipeline模版 进行优化策略的配置 Scrapy爬虫的数据类型: Request 包含6个属性和方法 .url Request对应的请求URL地址 .method 对应的请求方法,‘GET’ ‘POST’等 .headers 字典类型风格的请求头 .body 请求内容主题,字符串类型 ....

Antonio_Salieri的博客 532

2021-11-03大数据学习日志——数据埋点+网络爬虫——爬虫基础知识

这一节中,主要学习一些爬虫前置知识,主要知识点有: 爬虫的概念和作用 爬虫的流程【重要】 HTTP 协议 HTTPHTTPS 概念和区别 浏览器访问一个网址的过程 爬虫中常用的请求头、响应头 常见的响应状态码 浏览器自带开发者工具的使用 01_爬虫概述 知识点: 了解 爬虫的概念 了解 爬虫的分类 掌握 爬虫的流程 1.1 爬虫的概念 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

tingbaobaoo的博客 721

Python 爬虫实战:从入门到精通,爬取某站数据

在大数据时代,数据采集是数据分析、人工智能、商业决策的基础环节。Python 凭借简洁的语法、丰富的第三方库,成为爬虫开发的首选语言。但对于大多数初学者而言,往往停留在静态网页爬取阶段,面对当下网站普遍存在的异步加载、参数加密、IP 限制、签名校验等反爬机制时,常常束手无策。

qq_28372005的博客 5742

利用Python爬虫获取xx数据

requests 是一个基于 Python 的 HTTP 请求库,它简化了发送 HTTP 请求和处理响应的过程。使用 requests 库,开发者可以轻松地发送 GET、POST、PUT、DELETE 等类型的请求,并处理返回的数据。requests 库提供了简洁易用的 API 接口,使得进行 HTTP 请求变得非常方便。它支持 SSL、连接池、Cookie 持久化、代理、认证等功能,是 Python 中常用的 HTTP 请求库之一,广泛应用于网络爬虫、Web 开发等领域。

程序猿追的博客 7125

Python入门,Python爬虫基础知识

网络爬虫(Web Crawler 或 Spider)是一种在互联网上自动获取信息的程序。它根据设定的规则,从互联网上下载网页、图片、视频等内容,并提取有用信息进行处理。简而言之,网络爬虫就像是在互联网上自动“爬行”的程序,从一个或多个初始网页开始,读取网页内容,找到其中的链接,再通过这些链接找到下一个网页,如此循环,直到抓取完所有目标网页网络爬虫的应用非常广泛,如搜索引擎的网页抓取、数据挖掘、网站监测等。例如,搜索引擎通过爬虫技术抓取网页信息,建立索引数据库,以便用户进行关键词搜索时能快速找到相关信息。

黑马程序员官方博客 1056

python爬虫(1)——前置知识

什么是爬虫 通俗理解:爬虫是一个模拟人类请求网站行为的程序。可以自动请求网页、并数据抓取 下来,然后使用一定的规则提取有价值的数据。 专业介绍可参考:百度百科 什么是 httphttps 协议 HTTP 协议:全称是 HyperText Transfer Protocol,中文意思是超文本传输协议, 是一种发布和接收 HTML 页面的方法。服务器端口号是 80 端口。 HTTPS 协议:是 HTTP 协议的加密版本,在 HTTP 下加入了 SSL 层。(数据传输更加安 全)服务器端口号是 443

小冉的博客 364

从 JSON 到 JSONL,Apache SeaTunnel 如何解决HTTP 大数据传输的内存难题?

如果是常规的HTTP服务返回1个JSON格式的字符串时,那么就不用管这个参数,它默认就是false。如果是流式的JSONL输出格式,那么一定要记住设置参数为true。

weixin_54625990的博客 208
上一篇: python官方文档翻译_socketserver模块
下一篇: 爬虫基础_urllib
顽皮的橙子
博客等级 码龄10年 1粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值