前端和后端是怎么连接的?API、RESTful、JSON、CORS都是什么?
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
今天讲一下全栈领域的几个概念,如果你是做全栈的,比如 react 等等一定得懂。也就是解释了前端、后端连接的最底层的几个知识。 比如 API、RESTful、JSON、CORS 等等。 API 是什么?首先是 API ,全名叫:Application Programming Interface ,应用程序编程接口。 看起来很复杂,其实就是前端和后端约定好的一些做事方法。 两个团队一般是分开运作的,你不用关心我里面怎么实现【把用户的姓名、性别储存好】、【给你找出来那些人的会员快到期了】,你只需要得到一个链接就行,比如 https://example.com/member/expiring-list 这种。 这就是 API 。 或者你也可以理解为办事窗口的地址也行,你想查资料,去谷歌百度,你想看视频,去抖音,你想干什么什么,就使用什么什么链接... 什么是 RESTful然后是 RESTful 。这个我们可能经常看到,但很多初学者不太懂这个是什么。 这是一种 API 风格,就像白酒里的 【酱香型白酒】一样。 你在 A 公司,建立 API 是一种风格,你被开除了,去了 B 公司,又是另一种风格.... 那大局上来看,肯定在程序员市场里、开源程序社区里,都是不适合的。因此就设立了这种风格。 其实很简单,就是 url 代表资源, HTTP 的方法代表动作。 比如拿 /tasks 举例,url 就只有一个 tasks,然后我们有很多类型的 HTTP 请求,比如 GET POST... Url 一样,但干的事各不相同,比如: 说明一下:PUT 表示用新数据替换整个资源,而 PATCH 仅更新你发送的特定字段,其余部分保持不变。 然后我们在写文档的时候,就写 GET /tasks 或者 DELETE /tasks 就行了,合格的前端程序员就知道怎么回事了,能干什么了。 如果你不懂 RESTful ,你设计了个 https://example.com/api/getTasks 这种 ,/getTasks 、/deleteTasks ,就不是 RESTful ,就会不方便。 状态码好的,现在我们有了 api url 了,知道去哪个【办事窗口】做事了,但是,你需要一个响应。 这就是状态码: 这是国际互联网标准的状态码。 常用的就是 404 ,200, 500 我们的前端代码可以根据不同的状态码,去搞不同的事。 JSON前端和后端相互交换数据,常用的一种格式是 JSON 。 当然,还有很多格式,比如二进制、xml ..... 但更常用的是 JSON 。 它的优点只有一个,就是 人类阅读友好 。 我们前端向后端发信息时,就类似这样: 注意,我们一定得加上 application/json 等类似标志,这样后端才将其看做是 JSON 解析。 之后我们的后端,比如 express.JS 就这样解析你的信息,比如打印「张三」: 两个 await如果你是个前端,你就知道异步。 在 JS 里,如果你给后端发信息,然后获取返回的信息,如果是调用 fetch ,你会发现有两个 await 。 哈哈哈,这里有个很有意思的知识! 你是不是以为,内容和 状态码 ,比如 200 、404 ,都是同一时刻到达你电脑的? 并不是,其实,后端给前端响应,并不一致。 你发一条请求,后端接到后,还没开始处理完整的数据内容,就会先把响应头发给你。这样很重要!!! 程序员喜欢抽象概念,我们往往误以为羽毛和铁球在月球能同时掉地上,那在地球上也能。 其实不是这样。响应是很快的,东西还在路上运输。 第一个 await 是响应,第二个才是服务器返回给你的信息。 这是两个时间点。 (因此会出现一个现象:有的时候,服务器返回了 404 ,但你还是收到了正确的东西,,,或者说你收到了 200 OK ,但是你却没收到货) CORS这个叫 【跨源资源共享】 。 互联网上的内容,只有有链接有权限,是随意访问的。但是 浏览器 里内置了个安全规则:网页不能跨域名读取响应。 这个不是 浏览器 使坏,而是保护用户。否则任何网站都能利用你在另一个网站的登录身份,干坏事了。 但是,如果你的资源,在服务器端,设置为 CORS (主要是通过响应头),就是允许 跨资源共享,那么浏览器就允许 CORS 运行的网页去访问你的内容了。 【注意:CORS 是由浏览器强制执行的,不是服务器,一定要记清。防君子不防小人】 如果 cors 运行所有网页,那么所有网页都能了,就比如我自己的网站里,很多 知乎 网站、新浪微博 网站的图片,而无法弄很多其他人网站里的图片。。 它们设置的 CORS 不同,知乎运行所有网站用它网站上的图片,像一个公益图床一样,速度还贼快。 基本就这个样子。 该文章在 2026/5/11 10:31:50 编辑过 |
关键字查询
相关文章
正在查询... |