Web服务器如何知道何时回发或何时是初始请求?

时间:2012-09-17 21:14:34

标签: asp.net web client-server

很简单。在Web客户端(Web浏览器)向Web服务器发送请求后,Web客户端期望并收到来自Web服务器的响应。之后(从提交开始)Web客户端将一些数据发送到Web服务器(回发)。但是,内部Web服务器如何知道什么是回发或什么是第一次请求网页(可能在HTTP请求中有一些标志?)?

3 个答案:

答案 0 :(得分:2)

HTTP有许多动词,例如POSTGETGET就像输入网址一样。 POST通常用于表单。

如果页面方法是POST,则应该设置(在ASP.NET中)。

if (Page.IsPostBack)
{

}

答案 1 :(得分:0)

虽然只是整个故事的一部分,但这可能是System.Web.UI.Page课程中最相关的摘录:

在方法ProcessRequestMain(bool includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint)中:

if (this._requestValueCollection != null) {
    [..]
    text2 = this._requestValueCollection["__CALLBACKID"];
    if (text2 != null && this._request.HttpVerb == HttpVerb.POST)
    {
        this._isCallback = true;
    }
[..]
}

显然,ASP.NET正在post参数中传输加密的__CALLBACKID,并检查是否在HTTP请求消息中设置了POST谓词。

答案 2 :(得分:0)

如果我们只是谈论IIS /服务器 - 那么它就不能(在它自己的身上)第一个请求可以是任何动词(GETPOST或您允许的任何其他动词。

如果我们谈论的是ASP.NET Web表单页面,那么可以假设(但不是100%)“第一个”请求是GET和“回发” ,术语本身的性质是POST。但就像上面一样,您可以创建一个ASP.Net页面,该页面将POST作为它的第一个请求。

作为开发人员,您可以创建识别“第一个请求”的方法,但是您可以定义它。这是你执行流程的方式。动词真的与识别“第一(http)请求”没有任何关系......