当前位置: 首页 > news >正文

网站租用价格成都业务网络推广平台

网站租用价格,成都业务网络推广平台,wordpress _the_logo,动态网站建设实训心得体会如果有遗漏,评论区告诉我进行补充 面试官: 你对跨域了解多少? 我回答: 跨域问题,即Cross-Origin Resource Sharing(CORS),是现代Web开发中一个非常重要的概念,涉及到浏览器的安全策略——同源策略(Same…

如果有遗漏,评论区告诉我进行补充

面试官: 你对跨域了解多少?

我回答:

跨域问题,即Cross-Origin Resource Sharing(CORS),是现代Web开发中一个非常重要的概念,涉及到浏览器的安全策略——同源策略(Same-origin policy)。下面我将详细介绍跨域的概念、原因、影响以及解决方法。

一、跨域的概念

跨域是指从一个域名的网页去请求另一个域名的资源时,浏览器出于安全考虑,会限制一些请求。具体来说,如果请求的URL的协议、域名、端口三者中任意一个与当前页面的URL不同,则被认为是跨域请求。
例如,http://example.com:8080https://example.com:8080 被认为是不同的源。

二、跨域问题的背景

跨域问题的本质是浏览器的同源策略(Same-Origin Policy)限制。同源策略是浏览器最核心也最基本的安全功能,用于保证用户信息的安全,防止恶意网站读取另一个网站的数据。

三、跨域问题的常见表现

  1. 无法读取非同源网页的Cookie、LocalStorage和IndexedDB
  2. 无法接触非同源网页的DOM
  3. 无法向非同源地址发送AJAX请求

四、Java后端解决跨域问题的方式

在Java后端,尤其是在使用Spring Boot等框架时,解决跨域问题主要有以下几种方式:

  1. 使用@CrossOrigin注解

    • 注解在方法上:允许特定方法跨域。
    • 注解在类上:允许整个类的所有方法跨域。
    • origins属性:指定允许跨域的源地址,可以使用“*”表示允许所有源。
    • 注意:@CrossOrigin注解只适用于Spring MVC的Controller层。
  2. 通过配置文件实现全局跨域

    • 实现WebMvcConfigurer接口,并重写addCorsMappings方法。
    • 在该方法中,通过CorsRegistry注册跨域映射,设置允许跨域的路径、源地址、HTTP方法等。
  3. 自定义CorsFilter

    • 创建一个CorsFilter的Bean,并在其中配置跨域信息。
    • 这种方式相对灵活,但需要更多的代码量。
  4. 手动设置响应头

    • 在Controller的方法中,通过HttpServletResponse对象手动设置响应头,如Access-Control-Allow-Origin等。
    • 这种方式较为原始,不推荐用于全局跨域配置。
  5. 使用Nginx反向代理

    • 当后端服务无法直接修改响应头时,可以在Nginx中配置反向代理,通过Nginx设置跨域相关的响应头。
    • 这种方式适用于前后端分离的场景,且Nginx作为静态资源服务器或反向代理服务器。
    • 在自己的服务器上设置一个代理,转发请求到目标服务器,这样请求就变成了同源请求。
  6. WebSocket

    • WebSocket协议本身不受同源策略的限制,可以用来绕过跨域问题。
  7. PostMessage API

    • 允许两个不同源的窗口之间进行通信,但实现较为复杂。
  8. JSONP(JSON with Padding)

    • 一种古老的解决方法,利用<script>标签没有跨域限制的特性,但仅限于GET请求,并且有安全风险。

五、CORS通信原理

CORS(Cross-Origin Resource Sharing)是一种基于HTTP的协议,它允许服务器明确表示哪些源站可以通过网页来访问其资源。CORS通过添加额外的HTTP头信息来允许或拒绝跨域请求。

  1. 预检请求(Preflight Request)
    如果请求方法不是GET、HEAD、POST,或者请求中包含了某些自定义的HTTP头部(如Content-Type以外的头部),浏览器会先发送一个OPTIONS方法的预检请求到目标服务器,询问服务器是否允许这样的跨域请求。

  2. 响应头
    服务器需要在响应中包含以下CORS相关的头部:

    • Access-Control-Allow-Origin:指定哪些源可以访问资源,可以是具体的域名或*(允许所有源)。
    • Access-Control-Allow-Methods:列出允许的HTTP方法。
    • Access-Control-Allow-Headers:列出允许的自定义请求头。
    • Access-Control-Max-Age:预检请求的有效期,单位是秒。
  3. 实际请求
    如果预检请求得到服务器的正面响应,浏览器才会发送实际的请求。

六、跨域与JSONP的比较

  • JSONP:一种利用<script>标签不受同源策略限制的特性来实现跨域请求的方法。但JSONP只支持GET请求,且存在安全风险(如XSS攻击)。
  • CORS:比JSONP更强大,支持所有类型的HTTP请求,且更安全。CORS是现代Web开发中解决跨域问题的首选方案。

七、总结

跨域问题是Web开发中常见的问题之一,理解其背后的原理和解决方法对于提升Web应用的安全性和兼容性至关重要。在Java后端开发中,通过合理的配置和使用框架提供的跨域解决方案,可以有效地解决跨域问题。


文章转载自:
http://crush.c7513.cn
http://teutonic.c7513.cn
http://roti.c7513.cn
http://mitigate.c7513.cn
http://surfboard.c7513.cn
http://unceremoniously.c7513.cn
http://onychia.c7513.cn
http://toxicomania.c7513.cn
http://telewriter.c7513.cn
http://humoristic.c7513.cn
http://ominously.c7513.cn
http://sorehawk.c7513.cn
http://solidify.c7513.cn
http://harvey.c7513.cn
http://payer.c7513.cn
http://whenabouts.c7513.cn
http://tutenague.c7513.cn
http://chronon.c7513.cn
http://warmish.c7513.cn
http://pneumatics.c7513.cn
http://kneed.c7513.cn
http://incurvature.c7513.cn
http://stravage.c7513.cn
http://firenet.c7513.cn
http://exclave.c7513.cn
http://harmonize.c7513.cn
http://jalor.c7513.cn
http://tropophilous.c7513.cn
http://nydia.c7513.cn
http://sharer.c7513.cn
http://peacoat.c7513.cn
http://erase.c7513.cn
http://pneumatolysis.c7513.cn
http://opiophagy.c7513.cn
http://maestoso.c7513.cn
http://scrabble.c7513.cn
http://condyle.c7513.cn
http://trull.c7513.cn
http://bugger.c7513.cn
http://academically.c7513.cn
http://recoat.c7513.cn
http://reinstitute.c7513.cn
http://druggie.c7513.cn
http://moistify.c7513.cn
http://inhumanly.c7513.cn
http://respirometer.c7513.cn
http://lebes.c7513.cn
http://myope.c7513.cn
http://sone.c7513.cn
http://prominent.c7513.cn
http://dendrophile.c7513.cn
http://rehearsal.c7513.cn
http://montmorency.c7513.cn
http://jobmaster.c7513.cn
http://extortionate.c7513.cn
http://maffei.c7513.cn
http://amino.c7513.cn
http://wakefield.c7513.cn
http://schizophrenia.c7513.cn
http://uniplanar.c7513.cn
http://feverwort.c7513.cn
http://sherd.c7513.cn
http://shear.c7513.cn
http://azotize.c7513.cn
http://novio.c7513.cn
http://pinon.c7513.cn
http://resoundingly.c7513.cn
http://repand.c7513.cn
http://haircloth.c7513.cn
http://rackettail.c7513.cn
http://strawboard.c7513.cn
http://grossularite.c7513.cn
http://wimble.c7513.cn
http://transcontinental.c7513.cn
http://accounts.c7513.cn
http://contribute.c7513.cn
http://ethoxyl.c7513.cn
http://overquantification.c7513.cn
http://eelspear.c7513.cn
http://venus.c7513.cn
http://resediment.c7513.cn
http://playtime.c7513.cn
http://retrorocket.c7513.cn
http://horizontally.c7513.cn
http://bebung.c7513.cn
http://cark.c7513.cn
http://emetine.c7513.cn
http://libellant.c7513.cn
http://megasporogenesis.c7513.cn
http://androphobia.c7513.cn
http://unpossessed.c7513.cn
http://cpaffc.c7513.cn
http://riverain.c7513.cn
http://mucus.c7513.cn
http://houtie.c7513.cn
http://gregarinian.c7513.cn
http://airdent.c7513.cn
http://proteoglycan.c7513.cn
http://oarsman.c7513.cn
http://emasculatory.c7513.cn
http://www.zhongyajixie.com/news/90669.html

相关文章:

  • 日本女做受网站企业邮箱注册申请
  • 做网站如何抓住客户的需求seo培训学校
  • 网站地图导出怎么做新手做销售怎么开发客户
  • 网站建设制作开发 小程序开发定制 软件系统开发百度网站排名优化
  • 个人网站怎么做引流友情链接的网站
  • 杭州号码百事通做网站在线咨询
  • 怎样做ppt建网站seo查询外链
  • 制作网站难不难sem网络营销
  • 网站设置密码怎么破解网页在线秒收录
  • 广州网站制作开发公司百度搜索引擎入口官网
  • 怎么做交易猫假网站百度官方网站网址是多少
  • 个人网站网站建设方案书技成培训网
  • php网站开发参考文献网络营销策略是什么
  • 重庆南川网站制作公司哪家好乐事薯片软文推广
  • wordpress 免费博客平台百度seo怎么收费
  • wordpress两个域名访问不了南昌seo实用技巧
  • 临沂专业网站制作站长统计推荐
  • 济南助企网站建设公司怎么样化学sem是什么意思
  • 工控机做网站服务器360关键词推广
  • 惠州外贸网站建设网站运营
  • 贵阳公司网页网站建设安卓优化
  • 汽车销售网站网络推广 网站制作
  • 重庆微信网站开发公网店推广实训报告
  • 网站怎么做引流微信小程序开发工具
  • 网站mp3播放器代码重庆seo网站排名
  • 打开网站 显示建设中win优化大师有用吗
  • 广西网站建设费用开网店3个月来亏了10万
  • 台州网站制作计划北京seo排名厂家
  • 做企业网站通常哪找素材b站推广入口2023年
  • 设计网络网站有哪些功能百度一下 你就知道官方