A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

前言
     之前一次面试时面试官问到了Get请求和Post请求的区别,对于web基础来说这个还是比较重要的,所以我打算整理一下分享给大家,以下是我个人的一些总结,如果大神有更好的理解,欢迎补充。

从三个方面来总结
Get请求和Post请求的区别
优缺点
何时用Get请求,何时用Post请求
正文
1、Get请求和Post请求的区别
我们主要从五个角度去分析两者的区别:

1、请求的形式

GET请求:把请求的数据放在URL上,用?分割URL和传输的数据,多个参数的话用&符号连接。
    举个例子,“ http://www.laziji.com?id=11&name=laziji ”在这个地址里面,?后面的时请求的参数,这里有两个参数id和name,值分别为“11”和“laziji”。总结:1.参数就是传给后台取值的,“?”是解析的开始点,“&”是将多个参数进行连接的。2.URL的结构:“协议://域名或IP地址:端口号/目录/文件名.文件名后缀?参数1=值1&参数2=值2”

POST请求:把请求的数据放在HTTP请求包的包体中(requrest body)。
    POST请求包含两个部分:请求头(header)和请求体(body)

2、传输数据的大小

   GET请求:虽然在HTTP规范中没有对URL的长度和传输数据的大小做限制,但是实际情况下,浏览器一般会限制url的长度不超过2k个字节,提交的数据最大是2k。

   POST请求:理论上也是不限制的,但是实际上服务器会对post提交数据的大小做限制。

3、安全性

    GET请求:在传输数据时会将数据保留在浏览器的历史记录中,而且传输的数据参数会显示在url中,所有人都可以查看,安全行低。

    POST请求:在请求时数据是存放在请求包中的,不显示在url中,并且数据不会保留在浏览器的历史记录中。

4、编码方式

    GET请求只能ASCII编码;POST请求支持多种编码方式。

5、对服务器的操作

    GET请求:只是从服务器获取数据,不进行修改。

    POST请求:向服务器提交数据,可能更新数据,也就更改了服务器的数据。

2、优缺点
get请求比post请求快。
    get产生一个TCP数据包,post产生两个TCP数据包;

GET请求:浏览器将header和data一起发送,服务器响应200(返回数据)。POST请求:浏览器先将header发送,服务器响应100 continue,浏览器再将data发送,服务器响应200(返回数据)。

get会将数据保留在浏览器的历史记录中,post不会。
post不能进行管道化传输。
3、何时用Get请求,何时用Post请求
适合使用GET请求的情况:

用来查找资源,HTML表单数据只是用来帮助搜索。
请求结果无持续性的副作用。
收集的数据及HTML表单内输入的字段名称不超过1024个字符
适合使用POST请求的情况:

请求结果有持续性的副作用。如修改数据、添加数据。
当使用get方法URL过长时改用post方法。
要传输的数据不是采用7位的ASCII编码。

转载自CSDN:https://blog.csdn.net/weixin_42636743/article/details/106032919

1 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马