持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情
Http 相关问题
HTTP跨域(CORS)实现需要请求和响应做哪些操作?
客户端:
- 增加一个Origin字段:本次请求来自哪个源(协议 + 域名 + 端口)
- 在AJAX请求中打开withCredentials属性:浏览器发送Cookie
服务端:
- 首先查看http头部有无origin字段;
- 如果没有,或者不允许,直接当成普通请求处理,结束;
- 如果有并且是允许的,那么再看是否是preflight(method=OPTIONS);
- 如果不是preflight(简单请求),就返回Allow-Origin、Allow-Credentials等,并返回正常内容。
- 如果是preflight(预先请求),就返回Allow-Headers、Allow-Methods等,内容为空;
HTTP跨域时为何要发送options
w为什么会有跨域请求
- 浏览器同源策略
- 同源策略一般限制Ajax网络请求,不能跨域请求 server
- 不会限制
<link>、<img>、<script>、<iframe>加载第三方资源
跨域解决方法:
- JSONP
- 原理:A网页通过 script 请求 B 网页的接口
- B 网页的接口 返回了 字符串(字符串中带了数据内容)给 A 网页
- A 网页拿到字符串之后,当做 JS 去执行
- CORS
- 是一种基于 HTTP 头的机制
HTTP跨域时为何要发送options
- options请求是跨域请求之前的预检查
- 浏览器自行发起的
- 不会影响实际的功能
HTTP响应状态代码有哪些分类
- 信息响应 ( 100 – 199 )
- 一般是服务器接收到了请求,需要客户端进一步发送请求完成流程
- 成功响应 ( 200 – 299 )
- 成功,代表服务器理解、接收并处理完成
- 重定向消息 ( 300 – 399 )
- 重定向
- 客户端错误响应 ( 400 – 499 )
- 服务器没有找不到客户端需要的资源,如401客户端没有认证、403客户端认证不通过、404找不到客户端要的资源
- 服务端错误响应 ( 500 – 599 )
- 服务器错误