ToB企服应用市场:ToB评测及商务社交产业平台

标题: 欣赏器跨域以及前后端设置解决跨域问题,前端代码自己是静态的 [打印本页]

作者: 一给    时间: 2024-8-20 11:42
标题: 欣赏器跨域以及前后端设置解决跨域问题,前端代码自己是静态的
前端跨域问题,实际上是指欣赏器出于安全思量实施的“同源策略”(Same-origin policy)限制。以下是关于跨域的具体解释:
同源策略

同源策略是Web欣赏器最焦点也最根本的安全功能之一。它规定:从一个源加载的文档或脚本怎样与另一个源的资源进行交互。它能帮助阻止恶意文档,淘汰大概窃取数据的安全威胁。
假如两个页面的协议、域名(或ip地址)、端口三者之一差别,则这两个页面就属于差别的源。
跨域

当尝试从与原始文档差别的域、协议或端口加载资源时,就会发生跨域请求。由于同源策略的限制,从一个域上加载的脚本尝试向另一个域发起HTTP请求时会受到限制。比方:

为什么需要跨域

在现实开辟中,每每后端服务与前端项目是分离部署的,大概一个前端应用需要调用多个差别域名的后端服务,这种环境下就需要跨域请求。
跨域解决方案

固然同源策略限制了跨域请求,但开辟中经常需要实现跨域操纵,以下是一些常用的跨域解决方案:
意思跨域是前端自带的,而且是前端不能更改的?只能在后端想办法?
是的,跨域限制是欣赏器内置的同源策略(Same-origin policy)的一部分,这是前端无法更改的安全特性。这个策略是为了掩护用户免受恶意网站攻击而设计的。由于这个限制是由欣赏器实现的,因此前端代码自己无法直接绕过跨域限制。
前端开辟者通常有以下几种方式来处置惩罚跨域问题:
当我们批评欣赏器打开的域名时,通常指的是前端服务。以下是前端服务和后端服务的简单解释:
前端服务(Frontend Service)


后端服务(Backend Service)


欣赏器打开的域名

当你通过欣赏器访问一个域名时,通常是以下游程:
示例

假设你访问 http://www.example.com:

是的,欣赏器可以被视为一个客户端对象。在客户端-服务器(Client-Server)架构中,欣赏器是客户端的一部分,负责发送请求到服务器,并接收、剖析、显示服务器返回的数据。
以下是前后端与欣赏器的关系,以及它们是怎样部署和交互的具体解释:
欣赏器作为客户端


前端服务与后端服务


部署位置


前后端与欣赏器的交互

示例

假设用户在欣赏器中访问 http://www.example.com:

好的,让我们用一个更加通俗易懂的方式来解释这些概念。
通俗理解


前端服务部署和URL


开启前端服务的代码

以下是一个简单的例子,展示怎样在Node.js环境中使用Express框架来部署和开启一个前端服务:
  1. // 安装Express:npm install express
  2. const express = require('express');
  3. const path = require('path');
  4. const app = express();
  5. // 告诉Express你的静态文件(HTML, CSS, JS等)位于哪个文件夹
  6. app.use(express.static(path.join(__dirname, 'public')));
  7. // 设置一个基本的路由,比如首页
  8. app.get('/', (req, res) => {
  9.   res.sendFile(path.join(__dirname, 'public', 'index.html'));
  10. });
  11. // 启动服务器,监听3000端口
  12. const PORT = process.env.PORT || 3000;
  13. app.listen(PORT, () => {
  14.   console.log(`Server is running on port ${PORT}`);
  15. });
复制代码
在这个例子中:

理解服务器、后端、前端、欣赏器、URL


是的,前端服务和后端服务通常都会有一个IP地址和端口,以便它们可以在网络上被访问。以下是具体解释:
前端服务和后端服务的IP和端口


欣赏器访问前端服务


前端服务访问后端服务


总结


跨域问题确实与后端服务有关,这是因为欣赏器同源策略的限制不光作用于前端资源,也作用于通过前端发起的任何网络请求。以下是跨域问题与后端服务关系的逻辑流程:
欣赏器同源策略

欣赏器实施同源策略,目标是为了掩护用户免受恶意网站的侵害。同源策略规定,从一个源加载的文档或脚本怎样与另一个源的资源进行交互。假如两个页面的协议、域名(或IP地址)、端口三者之一差别,则这两个页面就不属于同一个源。
前端与后端交互的过程

跨域问题的出现


后端服务的作用


为什么跨域问题与后端服务有关


总结

跨域问题之所以与后端服务有关系,是因为欣赏器在发送跨域请求时会限制前端页面的行为,而后端服务需要通过特定的设置来答应这些请求。没有后端服务的共同,前端页面无法完成跨域请求。因此,解决跨域问题通常涉及到前端和后端服务的协作。
后端服务告诉欣赏器答应跨域请求的方式是通过在HTTP响应中添加特定的头部字段。以下是具体解释:
CORS(跨源资源共享)头部字段

后端服务通过在HTTP响应中包罗以下头部字段来告诉欣赏器答应跨域请求:

接口交互

后端服务设置这些头部字段通常是在处置惩罚HTTP请求的接口中完成的。以下是一个简单的Node.js/Express后端接口示例,展示怎样设置CORS头部:
  1. const express = require('express');
  2. const app = express();
  3. // CORS设置
  4. app.use((req, res, next) => {
  5.   res.header('Access-Control-Allow-Origin', '*'); // 允许任何源
  6.   res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); // 允许的HTTP方法
  7.   res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); // 允许的头部字段
  8.   next();
  9. });
  10. // 一个简单的GET接口
  11. app.get('/data', (req, res) => {
  12.   res.json({ message: '这是您请求的数据' });
  13. });
  14. // 启动服务器
  15. app.listen(3000, () => {
  16.   console.log('Server is running on port 3000');
  17. });
复制代码
在这个例子中,app.use 中间件用于设置CORS头部,使得任何源都可以访问这个接口。/data 接口是一个简单的GET请求处置惩罚器,它会返回一些数据。
总结

后端服务通过在HTTP响应中添加特定的CORS头部字段来告诉欣赏器哪些跨域请求是被答应的。这些头部字段是在后端服务的接口中设置的,它们界说了跨域请求的规则和限制。通过这种方式,后端服务可以安全地控制哪些外部域可以访问其资源。
HTTP接口协议(即HTTP协议)是互联网上应用最广泛的协议之一,它界说了客户端和服务器之间交换数据的方式。HTTP协议使用一系列的字段(headers)和请求/响应体(body)来传输数据。以下是HTTP接口协议中常见的字段和它们的作用:
请求头(Request Headers)


响应头(Response Headers)


请求体(Request Body)


响应体(Response Body)


为什么这些字段很重要?

这些字段帮助客户端和服务器之间进行有效的通信。比方:

前端代码自己是静态的,不需要启动任何服务。前端代码(HTML、CSS、JavaScript)是预先编写好的,通常放在Web服务器上,如Nginx或Apache。当用户访问前端页面时,Web服务器直接将这些静态文件发送给欣赏器,欣赏器负责剖析和渲染这些文件。
这里的服务是指Web服务器,它负责处置惩罚HTTP请求并返回静态文件。前端代码并不直接启动服务,而是由Web服务器提供服务。
以下是一个简单的例子,说明前端代码是怎样通过Web服务器(如Nginx)来提供服务的:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4