DOC PREVIEW
HTTP and Apache

This preview shows page 1-2-14-15-29-30 out of 30 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

HTTP and ApacheOverviewHTTP BasicsHTTP Message SyntaxRequest EnvelopeRequest Control DataRequest MetadataSlide 8Request DataSlide 10Response EnvelopeResponse Control DataResponse MetadataResponse DataSlide 15httpd InitializationConnection managementRequest ReadingRequest ProcessingRequest BodyFinding a representationConditional request evaluationResponse WritingSlide 24Send BodySlide 26Slide 27Future Improvementswaka/2.0Questions?HTTP and ApacheRoy T. FieldingeBuilt, Inc.The Apache Software [email protected]HTTP BasicsApache httpd architecture•Connection management (listening)•Request Reading•Finding a representation•Conditional request evaluation•Response Writing•Connection management (closing)Future Improvementswaka/2.0Web architecture•Layered-client-server•Uniform “resource” interface–Simple, but powerful–Semantics are visible to intermediaries•HTTP extends interface across networkHTTP BasicsHTTP Message SyntaxGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nHTTP/1.1 200 OK\r\nDate: Thu, 09 Mar 2000 15:40:09 GMT\r\nServer: Apache/1.3.12\r\nContent-Type: text/html\r\nContent-Language: en\r\nTransfer-Encoding: chunked\r\nEtag: “a797cd-465af”\r\nCache-control: max-age=3600\r\nVary: Accept-Language\r\n\r\n 4090\r\n<HTML><HEAD> …Request EnvelopeGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nRequest Control DataGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nRequest MetadataGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nRequest MetadataPOST /nasdaq/trade.php HTTP/1.1\r\nHost: www.datek.com\r\nUser-Agent: poseur/1.0 libwww/3.1\r\nContent-type: www/x-urlencoded\r\nContent-length: 58\r\n\r\nTicker=LNUX&quantity=140&action=sell&type=limit&amt=298.00Request DataPOST /nasdaq/trade.php HTTP/1.1\r\nHost: www.datek.com\r\nUser-Agent: poseur/1.0 libwww/3.1\r\nContent-type: www/x-urlencoded\r\nContent-length: 58\r\n\r\nTicker=LNUX&quantity=140&action=sell&type=limit&amt=298.00Request DataGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nResponse EnvelopeGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nHTTP/1.1 200 OK\r\nDate: Thu, 09 Mar 2000 15:40:09 GMT\r\nServer: Apache/1.3.12\r\nContent-Type: text/html\r\nContent-Language: en\r\nTransfer-Encoding: chunked\r\nEtag: “a797cd-465af”\r\nCache-control: max-age=3600\r\nVary: Accept-Language\r\n\r\n 4090\r\n<HTML><HEAD> …Response Control DataGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nHTTP/1.1 200 OK\r\nDate: Thu, 09 Mar 2000 15:40:09 GMT\r\nServer: Apache/1.3.12\r\nContent-Type: text/html\r\nContent-Language: en\r\nTransfer-Encoding: chunked\r\nEtag: “a797cd-465af”\r\nCache-control: max-age=3600\r\nVary: Accept-Language\r\n\r\n 4090\r\n<HTML><HEAD> …Response MetadataGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nHTTP/1.1 200 OK\r\nDate: Thu, 09 Mar 2000 15:40:09 GMT\r\nServer: Apache/1.3.12\r\nContent-Type: text/html\r\nContent-Language: en\r\nTransfer-Encoding: chunked\r\nEtag: “a797cd-465af”\r\nCache-control: max-age=3600\r\nVary: Accept-Language\r\n\r\n 4090\r\n<HTML><HEAD> …Response DataGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nHTTP/1.1 200 OK\r\nDate: Thu, 09 Mar 2000 15:40:09 GMT\r\nServer: Apache/1.3.12\r\nContent-Type: text/html\r\nContent-Language: en\r\nTransfer-Encoding: chunked\r\nEtag: “a797cd-465af”\r\nCache-control: max-age=3600\r\nVary: Accept-Language\r\n\r\n 4090\r\n<HTML><HEAD> …OverviewHTTP BasicsApache httpd architecture•Connection management (listening)•Request Reading•Finding a representation•Conditional request evaluation•Response Writing•Connection management (closing)Future Improvementswaka/2.0httpd Initializationhttpd core•apache-2.0/src/main/*.cInitiate program•http_main.cRead configuration files•http_config.c, http_core.cStart logging•http_log.cStart server listeners (MPM)•apache-2.0/src/modules/mpm/*Connection managementListening and Accept•mpm/prefork/prefork.c•mpm/mpmt_pthread.c•…Connection set-up•src/main/http_connection.c•Modular hooks for protocol independence•ap_process_http_connection()–Calls ap_read_request()and we are finally at the level of HTTPRequest Readingsrc/main/http_protocol.cGET /Test/hello.html HTTP/1.1\r\nHost: kiwi.ics.uci.edu:8080\r\nUser-Agent: GET/7 libwww-perl/5.40\r\n\r\nRequest Line•read_request_line(r)Header fields•get_mime_headers(r)Host determination•http_vhost.cRequest Processingsrc/main/http_request.cAccess control•Directory walk•Location walk•File walkHandler selection•Field pre-processing•Content HandlerRequest Bodysrc/main/http_protocol.cDeclaration•ap_setup_client_block(r, policy)Test•ap_should_client_block(r)Read until done•ap_get_client_block(r, …)Shortcut•ap_discard_request_body(r)Finding a representationEach content handler is responsible for associating the URI with a resource and applying the method, returning a representation as the responseRedirectionNegotiationSubrequestsErrorsConditional request evaluationConditional requests modify method processing depending on the current state of the resource representation •Last-Modified•EtagCache validation•If-Modified-Since•If-NonematchPrerequisites•If-Match•If-Unmodified-Since•Range-If•IfResponse WritingHTTP/1.1 200 OK\r\nDate: Thu, 09 Mar 2000 15:40:09 GMT\r\nServer: Apache/1.3.12\r\nContent-Type: text/html\r\nContent-Language: en\r\nTransfer-Encoding: chunked\r\nEtag: “a797cd-465af”\r\nCache-control: max-age=3600\r\nVary: Accept-Language\r\n\r\n 4090\r\n<HTML><HEAD> …Status code and reason phraseHeader fieldsBodyResponse WritingStatus code and reason phrase•r->status•r->status_line || status_lines[idx]Header fields•r->headers_out•r->err_headers_outHeaders set by modules•mod_expires.c•mod_headers.c–Header set Author “John Q. Public”Send BodyBody•File•Buffer•IO-layerTransfer-encoding•Length


HTTP and Apache

Download HTTP and Apache
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view HTTP and Apache and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view HTTP and Apache 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?