每日一博 | 层层剖析一次 HTTP POST 请求事故
vivo 互联网服务器团队- Wei Ling 本文主要讲述的是如何根据公司网络架构和业务特点,锁定正常请求被误判为跨域的原因并解决。 一、问题描述 某一个业务后台在表单提交的时候,报跨域错误,具体如下图: 从图中可看出,报错原因为HTTP请求发送失败,由此,需先了解HTTP请求完整链路是什么。 HTTP请求一般经过3个关卡,分别为DNS、Nginx、Web服务器,具体流程如下图: 浏览器发送请求首先到达当地运营商DNS服务器,经过域名解析获取请求 IP 地址 浏览器获取 IP 地址后,发送HTTP请求到达Nginx,由Nginx反向代理到Web服务端 最后,由web服务端返回相应的资源 了解HTTP基本请求链路后,结合问题,进行初步调查,发现此form表单是application/json格式的post提交。同时,此业务系统采用了前后端分离的架构方式(页面域名和后台服务域名不同 ), 并且在Nginx已经配置跨域解决方案。基于此,我们进行分析。 二、问题排查步骤 第一步:自测定位 既然是form表单,我们采用控制变量法,尝试对每一个字段进行修改后提交测试。在多次试验后,锁定表单中的m...
