本文分为两部分,第一部分可以列为冒充新人的失败模式,第二部分列为low的实践-键模式。自命不凡的失败模式:99%的人了解GET和POST并实践低调模式:1%的人不知道GET和POST的高深理解,这是我们日常WEB开发中最常用的数据传输方式。我们也经常在采访中见面。一般我们在浏览器中输入一个URL访问网站,都是GET请求;在HTMLFROM表单中,可以通过设置method指定提交方式为GET或POST,默认提交方式为GET。HTTP定义了与服务器交互的不同方法。、最基本的四种:GET、POST、PUT、DELETE、HEAD;其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生任何动作。无操作意味着GET和HEADHTTP请求不会在服务器上产生任何结果。但是,安全方法并不意味着不产生动作。这里的安全方法只是指信息不会被修改。GET和POST是我们常用的,其他实际应用比较少用到,所以这里仅作了解。99%的人认为是GET和POST1。传输方式(自行理解“显示方式”)GET请求的数据会附加在URL后面,将URL和传输数据分开。多个参数用&连接,比如"http://www.xxx.com/product?type=shoe&price=100&sex=male"数据格式有以下几点需要注意:如果数据是英文字母/数字,发送原样;如果是空格,则将其转换为+;如果是中文或其他字符,则用Base64对数据进行加密,如“%E4%BD%A0%E5%A5%BD”,其中%XX中的XX为十六进制表示的符号的ASCII码。POST请求会将请求的数据放在HTTP请求包的body中,GET传输的数据会直接暴露在URL中,而POST请求则不会。2.传输数据大小GET方式传输的数据最大只能是1024字节。因为GET是通过URL提交数据的,所以GET可以提交的数据量与URL的长度直接相关。URL本身没有参数上限。,HTTP协议规范不限制URL的长度。此限制是特定浏览器和服务器强加的限制。IE将URL的长度限制为2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,具体取决于操作系统的支持。注意:限制是针对整个URL长度,而不仅仅是传输数据的长度。POST方式理论上没有限制,可以传输更大的数据。限制因素是服务器处理程序的处理能力。Apache、Nigx、IIS服务器本身可以配置为限制传输大小。3、GET在浏览器fallback中是无害的,POST会再次提交请求4、GET生成的URL可以作为标签或者保存在历史中,但是POST不能5、GET请求会被浏览器主动缓存,但是POST不会,除非手动设置6.安全性GET传输的数据是直接暴露在URL中的。如果我们做的是用户登录,需要将登录账号和密码传给后台进行验证。如果使用GET,那么将账号密码直接暴露在URL中是极其危险的。而且,通过浏览器缓存机制,访问过的网站的URL会保存在浏览器历史中,其他人可以通过历史查看访问过的网站的URL,直接获取传输的数据。很可能受到“Cross-siterequestforgery”(中文名称:跨站请求伪造)攻击。但是,POST数据也可以被拦截。总结:GET请求是向服务器发送数据的请求。在实际应用中,数据不涉及安全。GET方法可以用来向后台请求数据,比如分页或者搜索关键字“http://www.xxx.com/product?keywords=xxx&page=2”;POST请求是向服务器提交数据的请求。对于涉及安全的数据,使用POST传输比GET传输更安全。过去,我也是99%的一员。也把自己总结的文章发给新人和同事,然后假装失败,被老板指点成为最后的1%。1%的人拥有的GET和POST本质??上是没有区别的,它们是HTTP协议中发送请求的两种方式。HTTP是基于TCP/IP的关于万维网中数据如何通信的协议,也就是说HTTP的底层是TCP/IP,所以GET和POST的底层也是TCP/IP,也就是说:GET/POST都是TCP链接。技术上可以在POST中添加url参数,在GET中添加请求正文。为了便于管理和避免混淆,HTTP为这些请求定义了GET、POST、PUT和DELETE。数据大小是由浏览器限制引起的。所以GET和POST本质??上都是TCP连接,没有区别。但是,由于HTTP规定和浏览器/服务器的限制,它们在应用过程中会显示出一些不同的隐藏Buff。GET生成一个TCP数据包,POST生成两个TCP数据包。GET请求,浏览器会发送httpheader连同数据一起发送,服务器返回200(返回数据)POST请求,浏览器先发送header,服务器响应100continue,浏览器再发送数据,服务器响应200(返回数据)因为POST需要两步,时间消耗多一点,但是网络环境好的时候,发一个包的时间和发两个包的时间差基本可以忽略不计。在网络环境较差的情况下,有两个数据包的TCP在验证数据包的完整性方面有很大的优势。并非所有浏览器都会发送两次POST数据包,但Firefox会发送一次。最后但同样重要的是,当您稍后被问到时,您可以。.....请开始你的表演参考文章:《99%的人都理解错了HTTP中GET与POST的区别》
