plainblack.com
Username Password
search
Bookmark and Share

WebGUI Request Cycle

This chapter will give you an idea of the inner workings of WebGUI. It may help you troubleshoot performance problems, or errors that you're seeing. Here's a high level of the request cycle. Don't be afraid, we'll cover it in a little more detail as we go.

 

 

To begin, a user via their web browser, or or some external service via some code will request a WebGUI page. It first hits Apache mod_proxy, which then forwards it on to Apache mod_perl. Since WebGUI is registered as a handler for mod_perl, mod_perl then passes the request on to WebGUI.

 

 

Once in WebGUI, the first thing it has to do is determine if we're dealing with files like extras, uploads, and passthrus. If that's the case, we process those and then hand it back to mod_perl to serve the files.

 

 

After we've dealt with that we open up a session so we can get database access, then determine if the site is being upgraded currently. If it is we want to put up a maintenance page.

 

 

If the site is not being upgraded, we can then process operations. Operations are things like login, turn admin mode on, user management, etc.

 

 

Then we check to see if the site needs to be run through the initial configuration wizard (aka setup). If it does, we'll return the setup system.

 

 

Once we've gotten through all that, we can finally start looking at serving up content. We get the asset by it's URL and then process functions on it, if any. We also now have to check to see that the URL exists, and if not we display a not found message, or an add page message.

 

 

And finally, we can do some post processing on the content. We determine if the asset or operation returned a file, a redirect, or basic content. If it was basic content we process macros on it.

 

 

After that, mod_perl hands the data back to mod_proxy, which then sends the request back to the requester.

Keywords: apache mod_perl mod_proxy

Search | Most Popular | Recent Changes | Wiki Home
© 2018 Plain Black Corporation | All Rights Reserved