前言
很多刚刚学编程的运维,会接触到Get和Post方法,如果没有编程基础的看《HTTP 方法:GET 对比 POST》一脸懵。我想一下还是写一个,做一下说明吧。
建议学习web之前看一下《HTTP权威指南》有些看不懂没紧要,先跳过,以后学到了再回看。
解说
我以飞翔风格解说,非喜勿喷^_^
先从Get方法慢慢拆开
最简单的了解GET
GET简单来来说:就是你在浏览器上输入网址,然后回车,叫GET,比如
www.hualinux.com/stu.jsp?id=1
直接用浏览器访问的方式就叫GET,完了^_^
一般情况下我们会和网站(专业叫后台)有些交互,需要传一些数据,所以往往带有参数(专业的叫传参),一般情侣吓用GET方法提交的:
?号之前叫地址: www.hualinux.com/stu.jsp
?号后面是参数:id=8,这是以“键=值”形式出来的,可以是多个,如果是多个的话要用“&”隔开,比如 www.hualinux.com/stu.jsp?id=1¬e=hualinx(至于id和note代码什么意思是由开发定的,你就只要知道它会传2个参数:id=1和note=hualinx)
有些特殊URL它是不用?这种方式的,像thinkphp是直接用pathinfo方式,这个学到的时候再了解。
注:浏览器地址的GET一般用的是URL编码,如果含有中文或特殊符号会用RUL编码表示,如“茄树”复制出来就会成“%E8%8D%94%E6%9E%”
什么是POST
一般情况下
<form action="stu.jsp" method="post">
输入: <input type="text" name="id"><br>
<input type="submit" value="提交"> </form>
<form>
像一般用<form>标签中指定method是“post”的,叫post方法。如果指定是GET就是get方法,但最终还是会转为URL浏览器形式去表示的。
无论是GET方法还是POST提交之后一般会有一种动态编程语言去处理,如php、java web、python web框架或GO web的一种框架。
GET和POST对比
你看一下GET和POST地址:
GET方法就通过上面说明,自己都可以简单分析一下
1. URL是明码的,用的是URL,肯定能看到内容,那是不是
2.不安全
3.URL 的最大长度是 2048 个字符。那知一个浏览器地址能输入多少,肯定有限制的
4.缓存:因为不安全的,反正是别人都能看到的,你一般不会放敏感信息吧,那么为了性能我是不是可以缓存一下
5. 只允许 ASCII 字符:URL编码我肯定要统一,那么我就指定 ASCII
POST方式是:
1.不会显示在URL中,因为URL是明码的,你输入密码不可能显示在URL吧?!
2.安全:比GET安全,我都不显示在URL中,一般都安全点吧,我们学网络的时候说到抓包,http传输是不加密的,可以抓包分析,那么我用https我连传输都是加密的,没得讲了吧
3. 长度无限制:我一个页面有一堆东西,那肯定不能限制呀,比如上传。有的人会说那我上传是限制了呀,那是代码限制并非是POST限制
4.数据类型没限制:可以是二进制。所谓的二进制就是已经被变成了0和1的文件了,打开是乱码,你也不知道是什么东东。只有电脑才能看懂。
网友评论