背景
写这篇文章的背景是,现在AI太火热了,2025年是AI落地应用非常重要的一年,而自己作为一个多年专注前端的开发人员,不是专业从事AI开发,不免非常焦虑;经过多方了解,我们普通开发人员,最接近我们接触AI的方式是使用coze搭建智能体,如果你想要搭建功能完整的智能体,那么学习python开发插件,是必不可少的一步;之前1个月我已经补了python基础,也发了些文章,是以一个初入python学习角度来写的,现在我要学习使用FastAPI,用它来开发一个增删改查用户信息的api,这是下篇文章要写的内容;而你开发api的目的是让使用方调用,要不然开发了也没啥意义,那么问题来了:我开发的api,对方怎么调用,我怎么把内容返回给对方?这个过程就需要一套规则,这就是http通讯协议;凡是调用我api的叫做客户端,放我api的地方叫做服务器;
API
API 是英文Application Programming Interface 的缩写,直译为中文是:应用程序接口;
API有很多类型,我们平时说的API,90% 是web api (通过 HTTP 协议访问的接口,通常用于 web 应用程序与服务器之间的通信),也就是http协议的接口;
http协议简介
HTTP协议的英文是Hyper Text Transfer Protocol,直译为中文是:超文本传输协议;
是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
额外补充:(重要)
客户端:发送请求的一方,我们最常见的客户端是浏览器,那是不是只有浏览器能发送请求呢,其实不是;只要准从http协议,能发送请求,这就是客户端;比如postman,电脑系统自带的curl命令;我们知道可以使用python爬取数据,就是因为python有能够发送请求的工具,而且还能伪造成浏览器发送请求,让服务器以为是浏览器发送请求。
服务器: 放置我们api的地方
一个完整的URL包括:协议、ip、端口、路径、参数;
请求方式:
- 增(post请求)
- 删(delete请求)
- 改(put请求)
- 查(get请求)
HTTP协议特性(只做了解)
- 基于TCP/IP协议
- 基于请求-响应模式
- 无状态保存
- 短连接和长连接
HTTP1.0默认使用的是短连接。浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。 HTTP/1.1起,默认使用长连接。要使用长连接,客户端和服务器的HTTP首部的Connection都要设置为keep-alive,才能支持长连接。 HTTP长连接,指的是复用TCP连接。多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。
HTTP协议包含由浏览器发送数据到服务器需要遵循的请求协议
与服务器发送数据到浏览器需要遵循的响应协议
。用于HTTP协议交互的信
被为HTTP报文
。
HTTP 请求协议(非常重要)
定义了客户端如何向服务器发起请求,包括请求的格式、方法和头信息
。
HTTP 请求通常由以下部分组成:(下面的内容要非常非常熟悉)
请求行
:包括 HTTP 方法(如 GET、POST)、请求 URL 和 HTTP 版本。请求头
:包含有关请求的元数据,例如 Content-Type、User-Agent 等。请求体(可选)
:在某些请求方法(如 POST)中,包含要发送的数据。
GET请求请求参数通常附加在 URL 中,通过 ? 和 & 分隔。例如:https://example.com/api?name=John&age=30。
POST 请求请求参数包含在请求体中,而不是 URL 中。这使得可以传递大量数据,可以处理多种类型的数据,比如 JSON、XML、表单数据等。
HTTP响应协议(非常重要)
HTTP 响应协议是指服务器对客户端请求的反馈,包含请求的处理结果和所请求资源的信息。
HTTP 响应通常由以下部分组成:
- ·
状态行
:包含 HTTP 版本、状态码和状态描述。 响应头
:包含关于响应的信息,例如:
Content-Type:响应体的数据格式(如 JSON、HTML)。
Content-Length:响应体的长度。响应体
:实际返回的数据,可以是 HTML、JSON 或其他格式。
常见状态码:
至此本文结束!下次写使用AI智能编辑器Trae开发FastApi的项目!