HTTP Sequence Diagram
HTTP Sequence Diagram
This sequence diagram describes the IP messages exchanged between the browser and servers on the internet. The message exchange
presented here was obtained from an older version of EventHelix.com home page. Internet Explorer (IE) with HTTP 1.1 was used for this
message trace.
This is a trace of a real page load and shows all the messages that were involved in rendering the complete page. The actual sequence of
packets as seen by the browser is preserved.
URL User enters www.EventHelix.com in as the URL
EventHelix
begin Loading of the complete web page is initiated. The
Loading EventHelix.com Home browser cursor changes to an hourglass
Page
create Browser creates a new thread to handle the HTTP
request
URL Browser asks the thread to visit www.EventHelix.com
EventHelix
DNS_Query The browser needs to translate from EventHelix.com to
UDP, EventHelix an IP address. This is accomplished using the Domain
Name System (DNS). A DNS Query message is sent to
the DNS Server defined for the PC. The DNS Request is
sent as a UDP message
DNS_Reply DNS Server translates from EventHelix.com to the IP
UDP, IP_address address and replies back
SYN Browser requests a TCP connection with the web
IP_address, destin_port = _80, source_port = _3679 server. The destination port is the well known HTTP
port (80). In this case the source port assigned to the
socket is 3679.
SYN_ACK HTTP server sends SYN+ACK
ACK Three way handshake for TCP connection establishment
is complete. The connection is ready for data transfer
HTTP_GET Browser sends a HTTP GET for the home page
HomePage
begin
Loading home page
HTTP_200_OK Web server finds the page and responds with the page.
The first segment contains the HTTP header with 200
OK code. This TCP segment also piggybacks an
acknowledgement to the HTTP_GET that was sent by
the browser.
If the web server was late in sending HTTP GET, the
TCP layer on the server would have generated an
explicit acknowledgement. See the loading of
eventhelixlogo.gif image
HTTP_Continue Web server sends the second segment containing more
page data.
Check for embedded objects The web browser keeps parsing the partial HTML page,
looking for other objects like images that might be
needed to render the page.
ACK TCP on the client machine typically sends an ack every
two segments
HTTP_Continue
Found image eventhelixlogo.gif Browser parses the received segment and determines
that eventhelixlogo.gif image is needed.
URL Browser decides that the loading of this image should
eventhelixlogo be handled by a separate thread. Thus the main thread is
requested to obtain the URL.
The decision to spawn a thread is based on how much
more data is needed to finish loading the current stream.
In this case the browser decides that there is quite a bit
Web Browsing (Web Browsing)
client internet EventHelix.com/EventStudio 2.0
browser net
main thread http thread 1 http thread 2 net 24-Feb-03 07:25 (Page 2)
ACK
HTTP_Continue
ACK
end
Loading eventhelix_heading.gif
HTTP_GET HTTP GET is sent for another image
use_case_sequence_diagram
begin
Loading use_case_sequence_diagram.gif
HTTP_Continue
ACK
HTTP_Continue
ACK
HTTP_Continue
ACK
end
Loading use_case_sequence_diagram.gif
HTTP_GET Browser sends HTTP GET for arrow_trans.gif
arrow_trans
ACK In this case, the web server is late is sending the image,
so the TCP layer sends an explicit acknowledgement.
begin
Loading evenhelixlogo.gif
HTTP_200_OK
HTTP_GET HTTP GET is sent for loading the join.gif image. The
join TCP layer also piggy backs an acknowledgement to the
HTTP_200_OK TCP segment received just before this
end
Loading evenhelixlogo.gif
begin
Loading arrow_trans.gif
HTTP_200_OK
ACK
begin
Loading join.gif
HTTP_200_OK
ACK
HTTP_Continue
ACK
end
Loading arrow_trans.gif
HTTP_Continue
ACK
end
Loading join.gif
end Loading of the complete web page has been completed.
Loading EventHelix.com Home The browser cursor is restored to a pointer.
Page
Page loading finished
CloseBrowser User closes the browser
Close Browser releases all active HTTP threads
Close
Web Browsing (Web Browsing)
client internet EventHelix.com/EventStudio 2.0
browser net
main thread http thread 1 http thread 2 net 24-Feb-03 07:25 (Page 4)
ACK