解析域名的步骤——hashcode和equals的联系——跨域问题

本文介绍了跨域问题及其解决方案,包括浏览器的同源策略、CORS跨源资源共享机制,以及如何在服务器端设置Access-Control-Allow-Origin头来允许跨域请求。同时,还探讨了域名解析的步骤,包括浏览器缓存、本机DNS缓存、hosts文件和DNS查询。此外,还讲解了HashMap中hashcode和equals的关系,它们在查找对象时的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.解析域名的步骤

浏览器缓存–>本机系统的dns缓存–>hosts文件–>DNS
请添加图片描述

请添加图片描述

请添加图片描述

被人修改了本地hosts文件 叫域名劫持 ,目前浏览器会一定的防止域名劫持功能

5.hashcode和equals的联系

hashcode 在HashMap中会使用到。get时先看hashcode是否一致,再看equals是否一致,都一致说明是同一个对象
请添加图片描述

请添加图片描述

6.跨域问题

描述:当一台服务器资源从另一台服务器(不同 的域名或者端口)请求一个资源或者接口,就会发起一个跨域 HTTP 请求。

现在很多项目开发都是前后端分离的,前端和后端都是独立运行的,后端提供json数据格式。那么两边是不同的ip、端口,跨站点进行资源分享,就是跨域。所以前后端分离就肯定有跨域问题。

同源策略:浏览器出于安全考虑,会限制跨域访问,就是不允许跨域请求资源,要求协议,IP和端口必须都相同,其中有一个不同就会产生跨域问题。(移动端没有这个问题)

解决:CORS 跨源资源共享 (或通俗地译为跨域资源共享)是一种基于 HTTP 头的机制,W3C的标准。

它通过服务器增加一个特殊的Header[Access-Control-Allow-Origin]来告诉客户端跨域的限制,如果浏览器支持CORS、并且判断Origin通过的话,就会允许XMLHttpRequest发起跨域请求。

在响应头中添加Access-Control-Allow-Origin Header。浏览器收到响应后,查看Access-Control-Allow-Origin Header,如果当前域已经得到授权,则将结果返回给JavaScript。否则浏览器忽略此次响应

在请求头 向服务器询问 能否跨域请求,服务器同意后,浏览器就成功访问。

是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。

CORS实现跨域访问

请求头加了东西 服务器接受到后 查看你访问的目标 是否允许跨域。允许,在响应头中会加 Header[Access-Control-Allow-Origin]。请添加图片描述

请添加图片描述

授权方式
方式1:返回新的CorsFilter
方式2:重写WebMvcConfigurer

请添加图片描述

如果每次都发送请求 先服务器申请 太麻烦

rgmaxAge 设置了这一段时间内 浏览器就不需要跨域询问请求了

方式3:使用注解(@CrossOrigin)

在controller中的方法(handle)上添加@CrossOrigin注解即可。或者在controller类上。局部添加

方式4:手工设置响应头(HttpServletResponse )

@RequestMapping("/hello")
@ResponseBody
public String index(HttpServletResponse response){
    response.addHeader("Access-Control-Allow-Origin", "http://localhost:8080");
    return "Hello World";
}

一般使用:方式3,方式2在springmvc官网文档中有
补充:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值