**HTTP/HTTPS基础** - URL结构(协议、域名、端口、路径、参数、锚点) - 请求方法(GET、POST) - 请求头/响应头 - 状态码含义

HTTP/HTTPS基础知识点详解

1. URL结构

协议部分

  • `http://` - 超文本传输协议,明文传输

  • `https://` - 安全的超文本传输协议,使用SSL/TLS加密

  • 爬虫注意点:HTTPS网站有TLS指纹(JA3指纹),可被用于检测爬虫

域名部分

  • 顶级域名:`.com`、`.org`、`.cn`等

  • 二级域名:`example.com`中的`example`

  • 子域名:`blog.example.com`中的`blog`

  • 爬虫注意点:有时同一网站内容在不同子域名有不同访问限制

端口部分

  • 格式:`:`后跟数字,如`:80`、`:443`

  • 默认端口:HTTP为80,HTTPS为443

  • 爬虫注意点:非标准端口可能有不同的访问策略

路径部分

  • 以`/`分隔的字符串,表示服务器上资源位置

  • 示例:`example.com/news/technology`

  • 爬虫注意点:URL路径通常反映网站结构,有助于构建爬虫规则

参数部分

  • 以`?`开始,`&`分隔多个参数

  • 格式:`?key1=value1&key2=value2`

  • 爬虫注意点:参数常用于分页、筛选和搜索,对动态内容爬取至关重要

锚点部分

  • 以`#`开始,指向页面特定部分

  • 示例:`example.com/page#section2`

  • 爬虫注意点:锚点不会发送到服务器,仅客户端有效,通常不影响爬虫数据获取

2. 请求方法

GET

  • 用途:获取资源,无副作用

  • 特点:参数附加在URL中,有长度限制,可被缓存

  • 爬虫应用:大多数基础爬虫使用GET请求获取页面内容

POST

  • 用途:提交数据,可能有副作用

  • 特点:参数在请求体中,无长度限制,默认不缓存

  • 爬虫应用:表单提交、登录、需要发送大量数据的场景

其他重要方法

  • HEAD:仅获取响应头,不获取响应体

  • PUT:上传资源,替换原有资源

  • DELETE:删除资源

  • OPTIONS:查询服务器支持的方法

  • 爬虫应用:HEAD可用于检查资源是否存在,节省带宽

3. 请求头/响应头

常用请求头

  • `User-Agent`:标识客户端类型,爬虫必备

  • `Accept`:指定客户端接受的内容类型

  • `Accept-Language`:指定语言偏好

  • `Accept-Encoding`:指定接受的编码方式

  • `Cookie`:存储用户会话信息

  • `Referer`:标识请求来源页面

  • `Authorization`:认证信息

  • `Content-Type`:POST请求的数据类型

  • `X-Requested-With`:标识AJAX请求

常用响应头

  • `Content-Type`:返回内容的类型

  • `Content-Length`:响应体长度

  • `Content-Encoding`:响应体编码方式

  • `Set-Cookie`:设置Cookie

  • `Location`:重定向目标URL

  • `Cache-Control`:缓存控制策略

  • `ETag`:资源标识符,用于缓存验证

爬虫相关

  • 反爬策略常检测的头部:`User-Agent`、`Referer`、`Cookie`

  • 设置适当的`User-Agent`可降低被封风险

  • 某些网站需要特定请求头值才能正常响应

4. 状态码含义

1xx - 信息性状态码

  • 100 Continue:继续发送请求

  • 101 Switching Protocols:协议切换

2xx - 成功状态码

  • 200 OK:请求成功

  • 201 Created:资源创建成功

  • 204 No Content:成功但无返回内容

3xx - 重定向状态码

  • 301 Moved Permanently:永久重定向

  • 302 Found:临时重定向

  • 304 Not Modified:资源未修改,使用缓存

4xx - 客户端错误状态码

  • 400 Bad Request:请求语法错误

  • 401 Unauthorized:未授权/需要身份验证

  • 403 Forbidden:服务器拒绝访问

  • 404 Not Found:资源不存在

  • 429 Too Many Requests:请求过多(常见于爬虫被限制)

5xx - 服务器错误状态码

  • 500 Internal Server Error:服务器内部错误

  • 502 Bad Gateway:网关错误

  • 503 Service Unavailable:服务暂时不可用

  • 504 Gateway Timeout:网关超时

爬虫处理策略

  • 2xx:正常处理数据

  • 3xx:根据重定向目标继续请求

  • 4xx:分析原因(可能是反爬措施)

  • 429:实施延迟/代理策略

  • 5xx:稍后重试

相关推荐
可触的未来,发芽的智生10 小时前
触摸未来2025.10.04:当神经网络拥有了内在记忆……
人工智能·python·神经网络·算法·架构
千里马-horse10 小时前
HTTP、WebSocket、XMPP、CoAP、MQTT、DDS 六大协议在机器人通讯场景应用
mqtt·websocket·http·机器人·xmpp·coap·fastdds
蔗理苦11 小时前
2025-10-07 Python不基础 20——全局变量与自由变量
开发语言·python
xiaohanbao0911 小时前
理解神经网络流程
python·神经网络
韩立学长11 小时前
【开题答辩实录分享】以《基于Python的旅游网站数据爬虫研究》为例进行答辩实录分享
python·旅游
小熊出擊12 小时前
【pytest】finalizer 执行顺序:FILO 原则
python·测试工具·单元测试·pytest
安卓开发者12 小时前
鸿蒙NEXT网络通信实战:使用HTTP协议进行网络请求
网络·http·harmonyos
tao35566712 小时前
【Python刷力扣hot100】49. Group Anagrams
开发语言·python·leetcode
韩立学长13 小时前
【开题答辩实录分享】以《基于Python的新能源汽车管理系统的设计与实现》为例进行答辩实录分享
python·新能源汽车
Pocker_Spades_A13 小时前
中秋与代码共舞:用Python、JS、Java打造你的专属中秋技术盛宴
python