Monday, June 25, 2007

Briefly about HTTP Request Begin Pipeline

Though SCD2 Training mentions this quite interesting and sometimes useful topic, I decided to give a quick overview of what happens with the HTTP request when it comes to Sitecore.

  • IgnoreList – checks if the requested page is in the ignore URL list in the web.config. The setting is called “IgnoreUrlPrefixes”. If such page is defined, the pipeline terminates.
  • SiteResolver – resolving the site name either by the sc_site query string value or by host name or virtual folder name got as a result of parsing the incoming URL.
  • DatabaseResolver – getting the Sitecore context database by the sc_database query string.
  • DeviceResolver – getting the current Sitecore device by query string, User Agent or in any other supported way.
  • LanguageResolver getting Sitecore context language by the sc_lang query string.
  • CustomHandlers – triggers custom handlers that are defined in the <customHandlers /> section.
  • FilterUrlExtensions – define the allowed/blocked extensions that will be either streamed or not.
  • QueryStringResolver – analyzing such query string as “sc_itemid”. If the ID specified as the value is valid and if the item is found in the context database, then the returning item is set as a context item.
  • AliasResolver – if the requested URL matches an alias that exist in the system, Sitecore processes either external URL or the real item that is associated with this alias.
  • DefaultResolver – getting the start path item for the context site. Sitecore instantiates this item using the “RootPath” and “StartItem” attributes of the context site by simply concatenating these values.
  • ItemResolver – getting the Sitecore context item by the incoming URL.
  • LayoutResolver – returning the presentation logic for the resolved item.
  • ExecuteRequest – context path rewrite and handling of the “item not found”/”layout not found” errors.


Lackó said...

Hi Guys,

Could you explain briefly what are the major differences between a standard ASP.NET website logic, pipeline etc and a Sitecore driven one ?

I think about this kind of differences for example HttpContext.Current...etc

thx in advance