- get从地址栏以明文的方式提交请求信息内容?username=admin&password=123,用户可见, 而post从请求正文提交请求信息内容,用户不可见。
- get提交因为是从地址栏传递,而浏览器的地址栏长度有限制,不能提交大数据
post从请求正文传递信息内容,对文件大小无限制,文件上传只能选择post - request对象是服务器获取请求信息(从请求头,请求正文中获取),我们可以使用request.setCharacterEncoding方法修改请求对象字符编码信息,但是不能修改地址栏字符编码。
get从地址栏传递信息,不能使用request.setCharacterEncoding这个方法去修改字符编码。post从请求正文以form表单形式提交,所以可以使用request.setCharacterEncoding这个方法去修改字符编码。 - 总结: 能够使用post提交尽量使用post提交。
Http请求的Get和Post的区别?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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)本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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里的文字?