Java面试之Get请求和Post请求

来源:辣子鸡 发布时间:2020-05-12 11:03:57 阅读量:769

前言

     之前一次面试时面试官问到了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编码。



标签: PHP 环境搭建
分享:
评论:
你还没有登录,请先