Http 相关问题

106 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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 )
    • 服务器错误

拓展链接