Bol5261 2021-09-30 18:25 采纳率: 96%
浏览 38
已结题

Http请求的Get和Post的区别?

  1. get从地址栏以明文的方式提交请求信息内容?username=admin&password=123,用户可见, 而post从请求正文提交请求信息内容,用户不可见。
  2. get提交因为是从地址栏传递,而浏览器的地址栏长度有限制,不能提交大数据
    post从请求正文传递信息内容,对文件大小无限制,文件上传只能选择post
  3. request对象是服务器获取请求信息(从请求头,请求正文中获取),我们可以使用request.setCharacterEncoding方法修改请求对象字符编码信息,但是不能修改地址栏字符编码。
    get从地址栏传递信息,不能使用request.setCharacterEncoding这个方法去修改字符编码。post从请求正文以form表单形式提交,所以可以使用request.setCharacterEncoding这个方法去修改字符编码。
  4. 总结: 能够使用post提交尽量使用post提交。
  • 写回答

2条回答 默认 最新

  • Zarek⠀ 2021-09-30 18:37
    关注

    ● get/post语义化来看,get方式属于向获取数据,post属于将数据交给服务端。
    ● get请求参数通常跟在url后面,post请求参数一般放在body中
    ● 因为浏览器对url长度有限制,所以get参数长度是存在限制的,一般整个url+参数应该在2kb内,而post参数放在body中,没有参数长度限制
    ● get请求参数放在url中,url是可见的,所以不适合包含敏感信息参数的请求,post参数放在body中,相较于get更加安全,但也不是绝对的,传输过程中如果是http的方式,那么二只都是明文传输,都不安全。
    ● get请求参数编码方式只允许ASCII,而post请求参数无编码限制。
    ● post请求会发送两次数据,先发送header,返回100,继续发送body(即post参数),get请求一般不会,只会发送一次数据。这里涉及到简单请求和非简单请求
    ● 简单请求与非简单请求判定方式:只要满足一下两个条件就是简单请求,反之非简单请求。至于为什么要区分简单与非简单请求,是因为简单请求其实本质都是Form表单提交时的请求,Form表单提交本身就不受跨域限制,不需要进行非简单请求的预检操作,所以向下兼容为了不对从前的表达请求进行预检判断,就将其分成简单请求与非简单请求,当然了,使用脚本模仿简单请求也不需要进行预检操作
    ○ 请求方式为GET/POST/HEAD其中一个
    ○ 请求头信息不超过以下几种字段
    ■ Accept
    ■ Accept-Language
    ■ Content-Language
    ■ Last-Event-ID
    ■ Content-Type(该字段仅限3个值)
    ● text/plain:数据内容以纯文本形式进行编码
    ● multipart/form-data:数据内容为表单数据
    ● application/x-www-form-urlencoded:数据内容为键值对形式(?key1=value1&key2=value2)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 创建了问题 9月30日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?