get和post区别,面试中经典答法

donglt-5211 donglt-5211     2022-12-20     287

关键词:

 

  • GET在浏览器回退时是无害的,而POST会再次提交请求。

    GET产生的URL地址可以被Bookmark,而POST不可以。

  •  GET请求会被浏览器主动cache,而POST不会,除非手动设置。

  • GET请求只能进行url编码,而POST支持多种编码方式。

  •  GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

  •  GET请求在URL中传送的参数是有长度限制的,而POST没有。

  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

  •  GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

  •  GET参数通过URL传递,POST放在Request body中。

 

精髓来了:

get和post是HTTP协议中两种发送请求的方法。

HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议

HTTP的底层是TCP/IP。所以get和post的底层也是TCP/IP。也就是说,get/post都是TCP连接。

get和post能做的事情是一样的,如果给get加上request body,给post带上url参数,技术上完全可以行的通。

TCP就好像汽车,我们用汽车来运输数据,它很可靠,从来不会发生什么丢少物件的事情,但是如果路上跑的车都是相同的,那世界就会是一团乱麻。

送急件的汽车可能被前面装载货物的汽车拦堵在路上,于是交通规则就产生了---http协议

HTTP给汽车运输设定了好几个服务类别,有get,post,put,delete.

于是,规定:当执行get请求的时候,要贴上“GET”标签,将货物放在车顶(url).
                     执行post请求的时候,要贴上“POST”标签,将货物放在车厢(request body)中。

当然,你开get车,将货物放在车厢里,也可以开post车时,将货物放在车顶。

HTTP只是个行为准测,TCP才是实现POST AND GET的方法。

整个交通系统中,还包含了另一个重要的角色:运输公司。不同的浏览器(发送http请求)和服务器(接受http请求)就是不同的运输公司。虽然可以在车顶上或者车厢中无限制的放置货物,但是浏览器通常都会限制url的长度,在2k个字节,服务器最多处理64k的url。超过的部分,恕不处理。

 

 

举例说明:倘若你用GET方法,却在车厢(request body)中放置货物,不同服务器的处理方式也是不同的,有的帮忙卸载数据,有的就直接忽略。

结论:虽然GET可以带request body,但不一定保证会被接收。

GET和POST本质上就是TCP连接,并无差别,是因为HTTP协议规定和浏览器和服务器的限制导致了她们在应用过程中体现出一些不同。

GET和POST还有一个重大的区别就是:GET产生一个数据包,POST产生两个数据包。

解释一下,就是:GET将http header 和data一起发送出去,服务器响应200

POST将http header 先发送出去,服务器响应100 continue ,浏览器在在发送data,服务器响应200。

 

因为POST需要两步,所以看起来GET比POST更加有效果,
但是:在网络较差的时候,两次包的TCP在验证数据包的完整性上,有非常大的优点。
并不是所有的浏览器中都会给POST发送2次包的,firefox就只发送一次。




记第一次面试

今天第一次面试,被问到表单中的get和post的区别。一时之间只记得post是安全性更高的,忘记了其他方面。还有延时加载的问题也回答得不是太好,回来马上查资料补充一下知识。 get和post区别:  get参数通过url传递(即HTT... 查看详情

get和post区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网... 查看详情

get和post区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出... 查看详情

get和post的区别--面试经常被问到!

了解历史get和post是HTTP与服务器交互的方式, 说到方式,其实总共有四种:put,delete,post,get。 他们的作用分别是对服务器资源的增,删,改,查。 所以,get是获取数据,post是修改数据。但是,现在大家都不这么... 查看详情

phpget和post的区别面试

阅读目录1、url可见性get,参数url可见;post,url参数不可见;2、数据传输上get,通过拼接url进行传递参数;post,通过body体传输参数;3、缓存性get,请求是可以缓存的;post,请求不可以缓存;4、后退页面的反应get请求页面后退时... 查看详情

计算机网络经典面试题30问

...挥手协议?6TCP和UDP相关的协议分别有哪些?7TCP和UDP有什么区别?8Post和Get有什么区别?9在浏览器中输入www.baidu.com后执行的全部过程?先查IP地 查看详情

http协议中get和post请求方法的区别

 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权... 查看详情

get和post请求方法的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网... 查看详情

post和get的区别,直指本质

...va编程之路的时候,面试往往会有一个面试题:get和post的区别是什么?那么你真的知道他们的区别吗?接下来抽丝剥茧,让我们看看get和post到底什么东西,首先从本质的角度看get和post并没有区别,因为get和post都是http协议做传... 查看详情

转载http中get与post的区别

 HTTP中GET与POST的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。你可能自己写过无数个GET和POST请求,或者... 查看详情

php经典面试题集(代码片段)

...链接规定默认地址或默认目标 3.echo(),print(),print_r()的区别?echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)print()只能打印出简单类型变量的值(如int,string)print_r()可以打印出复杂类型变量的... 查看详情

get-post区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出... 查看详情

http中get与post的区别

GET和POST,在我们日常WEB开发中,是最常用的数据传输方式。面试基础题也是经常会见到。一般我们在浏览器输入一个网址URL访问网站都是GET方式请求;在HTMLFROM表单中,可以通过设置method指定提交方式为GET或者POST提交方式,默... 查看详情

get和post两种基本请求方法的区别

 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权... 查看详情

get和post两种基本请求方法的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网... 查看详情

get和post两种基本请求方法的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网... 查看详情

get和post两种请求的区别

区别一get的参数包含在url中post是通过requestbody中 区别二get会产生一个TCP数据包而post会产生两个  注意:1.get和post都有属于自己的语意不能混用2.不是所有的浏览器都会在post中发送两次包火狐浏览器就一次   ... 查看详情

get和post区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网... 查看详情