zoukankan      html  css  js  c++  java
  • HTTP请求方式及常见问题

    请求方式

    当前HTTP一共有八种方式。有三种是有HTTP1.0提供,剩余五种则是有HTTP1.1提供

    常见问题

    啥是OPTIONS?有啥作用

    是浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前,会先进行一次预请求,就是我们刚刚说到的参数为OPTIONS的第一次请求,他的作用是用于试探服务端是否能接受真正的请求。如果options获得的回应时拒绝性质的,如404、403、500等状态,就会停止post、get请求的发出。

    产生条件:

    1. 请求的方法不是GET/HEAD/POST
    2. POST请求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
    3. 请求设置了自定义的header字段

     

    简单请求和复杂请求是什么?

    简单请求就是会直接发送请求,而复杂请求则会在发送真正的请求之前发一次OPTIONS预检请求,来试探服务器是否能够接收真正的请求,MDN对OPTIONS预检请求的释义为检测服务器所支持的请求方法。

    简单请求符合如下两个条件

    • 请求方式:GET、POST、HEAD,即HTTP1.0提供的三种请求方法
    • HTTP头部信息不超过一下几种字段:无自定义头部字段、Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type(只有三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)

    复杂请求则符合如下几个条件之一

    • 请求方式:PUT、DELETE
    • 自定义头部字段
    • 发送json格式数据

     

    说一说GET和POST的联系和区别

    联系:GET/POST都是TCP连接

    区别:

    重要区别:长方用包安,退缓历史类码(厂房用保安,退还历史累吗)

    区别

    GET

    POST

    传输长度

    长度限制(受限于url长度),一般2KB

    post无限制

    传输方式

    地址栏传输

    报文传输

    用途

    查询

    增删改数据

    数据包数量

    一个TCP数据包

    两个TCP数据包

    安全性

    不安全

    相对安全

    回退

    在浏览器回退时是无害的

    POST会再次提交请求

    缓存

    会被浏览器主动缓存

    不会被主动缓存

    历史记录

    会被完整保留在浏览器历史记录里

    不会保留

    参数类型

    只接受ASCII字符

    无限制

    编码

    只能URL编码

    POST支持多种编码方式

    注意⚠️:并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

     

    参考:

    https://www.jianshu.com/p/d0e76ba01c1c

    https://www.cnblogs.com/weibanggang/p/9454581.html

    https://zhidao.baidu.com/question/567658249.html

    https://blog.csdn.net/kahhy/article/details/81563063

    MDN: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/OPTIONS

  • 相关阅读:
    循环逗号分割数组!
    只是想好好学习一下!
    html元素水平垂直居中
    闭包知识点--笔记
    20160314
    从零开始做运维-零
    Nginx 和 CodeIgniter
    安装PIL库
    init
    NutUI3 多端实践之路
  • 原文地址:https://www.cnblogs.com/suihang/p/13348028.html
Copyright © 2011-2022 走看看