in source tree: netwerk/protocol/http/src/README
online:

http://www.mozilla.org/projects/netlib/http/class-overview.html
http://www.mozilla.org/docs/url_load.html
http://www.mozilla.org/catalog/libraries/network/

google the source: http://unstable.elemental.com/mozilla/build/latest/mozilla/ or http://linux.imp.mx/cvs-tmp/rpms/SOURCES/mozilla/
http://lxr.mozilla.org/seamonkey/source/

in netwerk/base/src/nsIOService.cpp nsIOService::NewChannelFromURI calls nsIOService::GetProtocolHandler to get the nsIProtocolHandler. the nsIProtocolHandler returns a nsIChannel from nsIProtocolHandler::NewChannel. protocol handlers are registered with [?] via 'contractid' "@mozilla.org/network/protocol;1?name="+scheme in ./netwerk/build/nsNetModule.cpp oa. the http module is registered in the variable gNetModuleInfo.