客户端使用post方法服务器端使用get方法处理客户端的请求?

jenny_zhang 2009-03-20 09:59:02
关于c#的Post和get方法问题

客户端程序使用Post的方法将sessionId发送到服务器端,而服务器端是通过get方法来接受这个sessionId的,没有任何的问题,在客户端看到的response.ContentLength的长度为-1.

服务器端可以使用和客户端不同的方法来处理客户端的请求吗?
...全文
471 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jenny_zhang 2009-03-20
  • 打赏
  • 举报
回复
谢谢!

我使用的不是Form表单提交的,但是原理是一样的。

我的意思是说我使用的是post方法将参数传递到服务器的那边,但是那边是用get方法来得到这个参数的,所以当服务器返回客户端的请求时,返回的数据有时只能得到一部分数据。

这是个文件上传和下载的问题,文件上传后会返回一个下载的url地址,使用post方法下载的将sessionId直接给发送给服务器那边,服务器那边需要验证sessionId是否正确,如果正确则使用response.GetResponseStream(),将数据写到本地,就是在这里,有时候会报错(服务器强制关闭了一个连接),而且只能得到部分数据。当改成Get方法时,不会报错也不会出现任何问题,所以我的意思是说客户端是以什么方式请求服务器端也要以什么方式来接受请求。
simonezhlx 2009-03-20
  • 打赏
  • 举报
回复
Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下:
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
2、 Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用 “&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、 Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。 Post的所有操作对用户来说都是不可见的。
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
6、Get是Form的默认方法。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧