当前位置: 首页 > news >正文

**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:稍后重试
 

http://www.xdnf.cn/news/512533.html

相关文章:

  • IS-IS 中间系统到中间系统
  • ASCII码表
  • 离散文本表示
  • Java IO框架
  • YOLO12改进-模块-引入Channel Reduction Attention (CRA)模块 降低模型复杂度,提升复杂场景下的目标定位与分类精度
  • 云原生安全:IaaS安全全解析(从基础到实践)
  • Linux 安装 Unreal Engine
  • 4.1.8文件共享
  • MCP实战:在扣子空间用扣子工作流MCP,一句话生成儿童故事rap视频
  • java中的Servlet3.x详解
  • 07、基础入门-SpringBoot-自动配置特性
  • wsl2中Ubuntu22.04配置静态IP地址
  • 荔枝成熟度分割数据集labelme格式2263张3类别
  • 基于PageHelper的分页查询
  • MyBatis-Plus 的 updateById 方法不更新 null 值属性的问题
  • MySQL--day2--基本的select语句
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Expanding Cards (展开式卡片)
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月18日第81弹
  • symfonos: 1靶场
  • 一个stm32工程从底层上都需要由哪些文件构成
  • 【ROS2】RViz2源码分析(九):RosClientAbstraction和RosNodeAbstraction的关系
  • Android 性能优化入门(二)—— 内存优化
  • MATLAB安装常见问题解决方案
  • C++23 放宽范围适配器以允许仅移动类型(P2494R2)
  • Java求职者面试:从Spring Boot到微服务的技术点解析
  • 什么是机器学习?
  • HiTool机顶盒刷机提示:网络下载TFTP超时,可能的原因如下
  • 原型链的详细解释及使用场景
  • ShenNiusModularity项目源码学习(26:ShenNius.Admin.Mvc项目分析-11)
  • JavaScript 中的 Window 对象详解