python的基本语法
前言
花费点时间重新学习一下python语法
使用python语言的目的
- 爬虫编写
- 自动化脚本
- 神经网络
基础语法
爬虫
爬虫的矛与盾
- 反爬机制
- 反反爬机制
- robots.txt
渲染方式
![](https://liwuyou66.oss-cn-beijing.aliyuncs.com/img/20250114043000.png)
HTTP 协议简介
HTTP(HyperText Transfer Protocol,超文本传输协议) 是一种用于在 Web 客户端(如浏览器)和服务器 之间通信的应用层协议。它是万维网(World Wide Web)中信息交换的基础,用于传输超文本(HTML)、图片、视频等资源。
1. HTTP 的核心特点
基于请求-响应模型:
- 客户端发送请求,服务器返回响应。
- 每次通信包含一个请求和一个响应。
无状态:
- HTTP 本身不记录每次请求的上下文信息。
- 可通过 Cookie、Session 或 Token 机制实现状态管理。
灵活性:
- 支持多种数据格式(如文本、JSON、XML、图片、视频等)。
- 能通过扩展实现新功能(如 HTTPS 支持加密通信)。
无连接:
- 每次请求与响应后,客户端和服务器之间的连接会关闭(HTTP/1.0)。
- HTTP/1.1 开始支持持久连接(Keep-Alive)。
2. HTTP 工作流程
- 客户端向服务器发送一个 HTTP 请求。
- 服务器处理请求,并返回一个 HTTP 响应。
- 客户端接收到响应后,呈现内容或进一步处理。
请求示例:
1 | GET /index.html |
响应示例:
1 | 200 OK |
3. HTTP 请求方法
方法 | 作用 | 描述 |
---|---|---|
GET | 请求资源 | 不包含请求体,仅用于获取数据。 |
POST | 提交数据 | 常用于表单提交、数据上传等操作。 |
PUT | 更新资源 | 用于上传或替换指定资源。 |
DELETE | 删除资源 | 请求服务器删除指定资源。 |
HEAD | 获取资源的元信息(无响应体) | 用于获取资源的状态或头信息。 |
OPTIONS | 查询服务器支持的请求方法 | 常用于跨域请求检查。 |
PATCH | 部分更新资源 | 更新资源的部分内容。 |
4. HTTP 状态码
HTTP 状态码是服务器对客户端请求的响应结果,分为以下五大类:
类别 | 范围 | 描述 |
---|---|---|
1xx | 100-199 | 信息性响应(请求已接收,继续处理) |
2xx | 200-299 | 成功响应(请求成功处理) |
3xx | 300-399 | 重定向(需要进一步操作完成请求) |
4xx | 400-499 | 客户端错误(请求有问题) |
5xx | 500-599 | 服务器错误(服务器无法处理请求) |
常见状态码:
- 200 OK:请求成功。
- 301 Moved Permanently:永久重定向。
- 302 Found:临时重定向。
- 400 Bad Request:客户端请求无效。
- 401 Unauthorized:需要认证。
- 403 Forbidden:服务器拒绝请求。
- 404 Not Found:请求的资源不存在。
- 500 Internal Server Error:服务器内部错误。
5. HTTP 的重要概念
1. URL(Uniform Resource Locator,统一资源定位符)
URL 是资源的地址,结构如下:
1 | 协议://主机名[:端口]/路径[?查询参数][#片段标识符] |
示例:
1 | https://www.example.com:8080/index.html?search=test#section1 |
2. HTTP Headers(请求头和响应头)
Headers 包含请求或响应的元信息,例如内容类型、长度、认证信息等。
常见请求头:
Host
:目标服务器地址。User-Agent
:客户端信息。Accept
:客户端支持的媒体类型。Authorization
:认证信息。
常见响应头:
Content-Type
:响应的内容类型。Content-Length
:响应内容的字节数。Set-Cookie
:设置 Cookie。
3. HTTP 和 HTTPS
- HTTP:明文传输,安全性较低。
- HTTPS:通过 SSL/TLS 加密,提供数据安全性和完整性。
6. HTTP 协议的版本
版本 | 特性 |
---|---|
HTTP/1.0 | 无状态,无连接,每次请求需建立新连接。 |
HTTP/1.1 | 支持持久连接(Keep-Alive),头部字段可压缩。 |
HTTP/2 | 支持多路复用、头部压缩、更高效的资源传输。 |
HTTP/3 | 基于 QUIC 协议,进一步提升传输性能和安全性。 |
7. HTTP 的优缺点
优点:
- 简单易用。
- 灵活支持多种数据格式。
- 应用广泛,几乎所有 Web 应用都基于 HTTP。
缺点:
- 无状态:需要额外机制管理会话状态。
- 安全性:原生 HTTP 无加密,容易被攻击(如窃听、篡改)。
总结
HTTP 是现代 Web 通信的基础,简单灵活,但也面临安全和性能问题。随着技术的发展,HTTPS、HTTP/2 和 HTTP/3 已成为趋势,为用户带来更安全、高效的体验。