4

一个简单的问题,但我需要为自己澄清一个问题。就可以在请求对象中访问的集合而言,有:

Cookies:    (whats in  a text file in the browser)
Querystring:   (whats passed in the url like [key=value&key=value etc])
Server Variables:  ?
Form Variables:    ?

那些带有 ? 旁边是我不太了解它们在 http 数据包/html 中的位置。我使用wireshark进行了捕获:

POST /Security/HelixSessionAuth.aspx HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 391

ClientIP=192.168.20.31
Url=%2Fflash%2F56553550%5Fhi%2Emp4
Log=SESSIONSTART%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%20%20flash%2F56553550%5Fhi%2Emp4%200%20192%2E168%2E20%2E31%203%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%200%200%200%20%5B0%20No%20Error%5D%20%5B0%20No%20Error%5D%20%5Brtmp%3A%2F%2Fhelix%2Epete%2Evideolibraryserver%2Ecom%2Fflash%2F56553550%5Fhi%2Emp4%5D%0A
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 13 Dec 2010 16:31:23 GMT
Connection: close
Content-Length: 315

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Not Found</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Not Found</h2>
<hr><p>HTTP Error 404. The requested resource is not found.</p>
</BODY></HTML>

他们将在上述提要中的什么位置?

4

3 回答 3

2

Form 集合是页面中通过 POST 方法传递到操作页面的控件列表。Querystring 是一个 GET,POST 将项目添加到 Form 集合中。如果您知道 POST 中控件的名称,则可以使用以下命令在操作页面中访问其值:

Request.Form("myControl")

在 .Net Web 表单中,这有点复杂,因为 .Net 注入了一个专门的 ClientID 来保存后面代码中实际控件的 ID。

服务器集合是通用服务器变量的集合,用于标识有关客户端、服务器、连接、浏览器等的信息。可以在此处找到完整列表:

https://msdn.microsoft.com/en-us/library/ms524602(v=vs.90).aspx

于 2010-12-14T11:58:28.420 回答
2

为此,Wireshark 有点像大锤,我建议从HttpRequest 的 MSDN 文档开始。这应该可以帮助您了解 Form 和 Server 集合是什么以及它们代表什么,然后您就会知道您在实际数据包中寻找什么。

于 2010-12-14T11:51:58.910 回答
1

首先关于你的工具。WireShark是一个低级别的数据包分析工具,您不需要学习 HTTP 概念。而是使用Fiddler

服务器变量:

这是来自 asp classic 的旧对象。现在他们的对象有很多别名。例如Request.UserHostAddress是 的别名Request.ServerVariables("remote_addr")。此外Headers, Cookies,Session对象, ... 可从此对象获得。这个对象有更多的向后兼容性。

表单变量:

ASP.NET 中的所有控件都由 ASP.NET 使用 ID 进行跟踪,并且它们的状态保存在ViewState隐藏字段中。视图状态,是 ASP.NET 网页用来在PostBacks. 因此,PostBack在服务器端的每个(表单发布,即单击一个按钮)ASP.NET 都会从发布数据重新填充表单对象及其子项(表单内的控件)。这就是我们所说的表单集合。

于 2010-12-14T12:11:20.857 回答