preflight request,即预检请求(Pre-flight Request),是浏览器在发送实际的CORS(Cross-Origin Resource Sharing,跨源资源共享)请求之前进行的一种HTTP OPTIONS方法的请求。当发起一个非简单请求时(例如使用了自定义头信息、PUT、DELETE等方法,或者Content-Type不是安全值时),浏览器会自动发送一次预检请求到服务器以确认是否允许该跨域请求。
预检请求的主要目的是询问服务器,当前源(origin)是否有权限访问资源以及具体的方法、头部和主体内容是否被允许。服务器通过返回特定的响应头来决定客户端能否继续发送实际请求,如Access-Control-Allow-Methods
、Access-Control-Allow-Headers
和 Access-Control-Allow-Origin
等。
如果服务器同意此次跨域请求,则它会在预检请求的响应中携带相应的允许信息,之后浏览器才会真正发出原先计划的请求。若服务器不同意或没有正确设置响应头,浏览器则会阻止实际请求的发送。
204的状态码是什么
HTTP状态码204表示“无内容”(No Content)。当服务器成功处理客户端的请求,但不需要返回任何实体内容时,就会返回这个状态码。这意味着请求已经完成,并且响应报文中不包含响应体,浏览器在接收到此状态后不会刷新页面或导向新的页面。通常情况下,204状态码适用于执行了DELETE、PUT等方法后,资源已被成功处理并删除,或者对于HEAD方法请求的应答中,由于HEAD请求本身就只需要响应头信息而不需要响应正文。
预检请求的状态码是204意味着什么?
预检请求(preflight request)使用 HTTP OPTIONS 方法发送到服务器,以确定实际的跨域请求是否可以被允许。当服务器对预检请求的响应状态码是204时,它意味着:
- 服务器已经理解了该预检请求,并且确认客户端有权限发送实际请求。
- 响应中不包含任何实体内容(即没有响应体)。
- 由于204状态码通常不携带任何数据,但包含了必要的CORS相关头部信息,如
Access-Control-Allow-Methods
、Access-Control-Allow-Headers
和Access-Control-Max-Age
等,这些头信息告诉浏览器哪些HTTP方法、头部字段和来源(origin)是被服务器允许的。
因此,在CORS场景下,预检请求返回204状态码表示服务器允许客户端进行后续的实际请求操作。
标签:Control,请求,什么,request,预检,Access,preflight,服务器,204 From: https://www.cnblogs.com/longmo666/p/17994247