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