您的位置 首页 java

java get于post请求

最近在网上看到好多有关post与get请求的面试题,各种高大上的回答看的眼花缭乱,于是就整理了一下部分回答。

**以下内容来源于网络与W3CSchool**

什么是 HTTP?

超文本传输协议(HTTP)的设计目的是保证 客户机 与服务器之间的通信。

HTTP 的工作方式是客户机与服务器之间的请求-应答协议。

web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。

举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

两种 HTTP 请求方法:GET 和 POST

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

GET – 从指定的资源请求数据。

POST – 向指定的资源提交要被处理的数据

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

get产生的URL地址可以被Bookmark,而post不可以。

get请求会被浏览器主动cache,而post不会,除非手动设置。

get请求只能进行 URL编码 ,而post支持多种编码格式。

get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留.

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

对参数的数据类型,get只接受ASCll字符,而post没有限制。

get比post更不安全,get请求参数直接暴露在URL上,所以不能用来传递敏感信息。

get参数通过URL传递,post则放在Requestbody中。

get请求比post请求快。

还有一种基于 TCP /IP协议来说:

在万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为了避免这种情况发生,交通规则HTTP诞生了。HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢里。当然,你也可以在GET的时候往车厢内偷偷藏点货物,但是这是很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。

上述例子描述了get与post本质上就是TCP链接,并无差别。

还有一点需要注意的就是:

1. GET与POST都有自己的语义,不能随便混用。

2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

**以上内容来源于网络**

文章来源:智云一二三科技

文章标题:java get于post请求

文章地址:https://www.zhihuclub.com/189902.shtml

关于作者: 智云科技

热门文章

网站地图