get和post的底层原理
在当今的网络世界,主要分为b/s 和c/s 两种构架。大都是基于tcp/ip。而这一套方法的基本形式就是客户端(浏览器、手机等)按照一定的规则协议发送请求到服务器,服务器再按照请求的正确合法与否返回你想要的数据到你客户端。
get和post的产生区别的原因
get和post只是客户端向服务端请求操作资源的两种不同的方法。首先从字面意思来说这两种方法的不同点就是:get是获取资源,post是提交资源。
那么这两种请求方法的具体区别又是怎么产生的呢?这是因为在tcp/ip协议中的这些规则和浏览器的限制,导致了两种请求方法产生了一些区别。而这些差别其实就是因为在书写请求方法的时候的方式不同而产生的。如下图:http请求报文
因为请求的时候书写方式不一样:
1、GET 请求的数据会附在 URL 之后GET 请求的数据会附在 URL 之后,即将请求数据放置在 HTTP 报文的 请求头 中,以 ? 分割 URL 和传输数据,参数之间以 & 相连。特别地,如果数据是英文字母/数字,原样发送;否则,会将其编码为 application/x-www-form-urlencoded MIME 字符串(如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用 BASE64 加密,得出如:%E4%BD%A0%E5%A5%BD,其中 %XX 中的 XX 为该符号以 16 进制表示的 ASCII),
而 POST 请求会把提交的数据则放置在是 HTTP 请求报文的 请求体 中;
2、从而(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url,而post则无;
3、到tcp传输层的时候那么get一个包(请求头和数据放在一起了),而post的请求头和数据分开需要发送两个包;
4、因为post的请求参数包装到请求体中了,相对于post要安全些吧。
get和post的区别
最新推荐文章于 2024-06-16 14:29:03 发布