转载 post和get的区别.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:3 大小:42KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

转载 post和get的区别.doc

转载post和get的区别.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

转载post和get的区别原文地址post和get的区别作者朱春根今天看到了一些关于讨论post和get的区别特贴出来和大家分享post和get的区别post地址栏不会出现一大串bjnghfgreygt这样的东西如果是get就会出现了1、Get方法通过URL请求来传递用户的数据将表单内各字段名称与其内容以成对的字符串连接置于action属性所指程序的url后如url数据都会直接显示在url上就像用户点击一个链接一样Post方法通过HTTPpost机制将表单内各字段名称与其内容放置在HTML表头header内一起传送给服务器端交由action属性能所指的程序处理该程序会通过标准输入stdin方式将表单的数据读出并加以处理2、Get方式需要使用Request.QueryString来取得变量的值而Post方式通过Request.Form来访问提交的内容3、Get方式传输的数据量非常小一般限制在2KB左右但是执行效率却比Post方法好而Post方式传递的数据量相对较大它是等待服务器来读取数据不过也有字节限制这是为了避免对服务器用大量数据进行恶意攻击根据微软方面的说法微软对用Request.Form可接收的最大数据有限制IIS4中为80KB字节IIS5中为100KB字节建议除非你肯定你提交的数据可以一次性提交否则请尽量用Post方法4、Get方式提交数据会带来安全问题比如一个登陆页面通过Get方式提交数据时用户名和密码将出现在URL上如果页面可以被缓存或者其他人可以访问客户这台机器就可以从历史记录获得该用户的帐号和密码所以表单提交建议使用Post方法Post方法提交的表单页面常见的问题是该页面如果刷新的时候会弹出一个对话框建议出于安全性考虑建议最好使用Post提交数据post和get的不同之处GET与POST的区别在于对于CGI如果以GET方式传输所带参数附加在CGI程式的URL后直接传给server并可从server端的QUERY_STRING这个环境变量中读取如果以POST方式传输则参数会被打包在数据报中传送给server并可从CONTENT_LENGTH这个环境变量中读取出来。还有一种情况是你用的是GET方式但传送的参数是路径如--ahref/cgi-bin/a.pl/usr/local/bin/pineCGI/a--这时所传递的参数/usr/local/bin/pine存放在PATH_INFO这个环境变量中。环境变量的读取方式为strENVQUERY_STRING理论上说GET是从服务器上请求数据POST是发送数据到服务器。事实上GET方法是把数据参数队列querystring加到一个URL上值和表单是一一对应的。比如说nameJohn。在队列里值和表单用一个符号分开空格用号替换特殊的符号转换成十六进制的代码。因为这一队列在URL里边这样队列的参数就能看得到可以被记录下来或更改。通常GET方法还限制字符的大小。事实上POST方法可以没有时间限制的传递数据到服务器用户在浏览器端是看不到这一过程的所以POST方法比较适合用于发送一个保密的比如信用卡号或者比较大量的数据到服务器。Post是允许传输大量数据的方法而Get方法会将所要传输的数据附在网址后面然后一起送达服务器因此传送的数据量就会受到限制但是执行效率却比Post方法好。对于GET提交的数据WWW服务器将把数据放在环境变量QUERY_STRING中对于POST方法数据被送到WWW服务器的STDOUT中然后CGI从自己的STDIN中读取。使用传统的CGI方法用户必须自己编程来处理这些数据。GET与POST的区别在于如果以GET方式传输所带参数附加在CGI程式的URL后直接传给server并可从server端的QUERY_STRING这个环境变量中读取如果以POST方式传输则参数会被打包在数据报中传送给server并可从CONTENT_LENGTH这个环境变量中读取出来。还有一种情况是你用的是GET方式但传送的参数是路径如--ahref/cgi-bin/a.pl/usr/local/bin/pineCGI/a--这时所传递的参数/usr/local/bin/pine存放在PATH_INFO这个环境变量中。环境变量的读取方式为strENVQUERY_STRING总结起来get方式以URL字串本身传递数据参数在服务器端可以从QUERY_STRING这个变量中直接读取效率较高但缺乏安全性也无法来处理复杂的数据只能是字符串比如在servlet/jsp中就无法处理发挥java的比如vector之类的功能post方式就传输方式讲参数会被打包在数据报中传输从CONTENT_LENGTH这个环境变量中读取便于传送较大一些的数据同时因为不暴露数据在浏览器的地址栏中安全性相对较高但这样的处理效率会受