Having gotten our feet wet with the Wireshark packate sniffer in the introductory lab, we are now ready to use Wireshark to investigate protocols in operation. In this lab, we will explore several aspects of the HTTP protocol: the basic GET/response interaction, HTTP message formats, retrieving large HTML files, retrieving HTML files with embedded objects, and HTTP authentication and security. Before beginning these labs, you might want to review Section 2.2 of the text.

1. The Basic HTTP GET/response interaction

Let’s begin our exploration of HTTP by downloading a very simple HTML file - one that is very short, and contains no embedded objects. Do the following:

  1. Start up your web browser.

  2. Start up the Wireshark packet sniffer, as described in the Introductory lab (but don’t yet begin packet capture). Enter “http” (just the letters, not the quotation marks) in the display-filter-specification window, so that only captured HTTP messages will be displayed later in the packet-listing window. (We are only interested in the HTTP protocol here, and don’t want to see the cluster of all captured packets).

  3. Wait a bit more than one minute (we will see why shortly), and then begin Wireshark packet capture.

  4. Enter the following to your browser: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html

    Your browser should display the very simple, one-line HTML file.

  5. Stop Wireshark packet capture

Your Wireshark window should look similar to the window shown in Figure 1. If you are unable to run Wireshark on a live network connection, you can download a packet trace that was created when the steps above were followed. Download the zip file http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip and extract the file http-ethereal-trace-1. The traces in this zip file were collected by Wireshark running on one of the author’s computers, while performing the steps indicated in the Wireshark lab. Once you have downloaded the trace, you can load it into Wireshark and view the trace using the File pull down menu, choosing Open, and then selecting the http-ethereal-trace-1 trace file. The resulting display should look just like Figure 1.

Untitled

Untitled

The example in Figure 1 shows in the packet-listing window that two HTTP messages were captured: the GET message (from your browser to the gaia.cs.umass.edu web sever) and the response message from the server to your browser. The packet-contents window shows details of the selected message (in this case the HTTP GET message, which is highlighted in the packet-listing window). Recall that since the HTTP message was carried inside a TCP segment, which was carried inside an IP datagram, which was carried within an Ethernet frame, Wireshark displays the Frame, Ethernet, IP and TCP packet information as well. We want to minimize the amount of non-HTTP data displayed (we are interested in HTTP here, and will be investigating these other protocols is later labs), so make sure the boxes at the far left of the Frame, Ethernet, IP and TCP informations have a plus sign (which means there is hidden, undisplayed information), and the HTTP line has a minus sign (which means that all information about the HTTP message is displayed).

<aside> 💡 (Note: You should ignore any HTTP GET and response for favicon.ico. If you see a reference to this file, it is your browser automatically asking the server if it (the server) has a small icon file that should be displayed next to the displayed URL in your browser. We will ignore references to this pesky file in this lab).

</aside>

By looking at the information in the HTTP GET and response messages, answer the following questions. When answering the following questions, you should print out the GET and response messages (see the introductory Wireshark lab for an explanation of how to do this) and indicate where in the message you’ve found the information that answers the following questions.

  1. Is your browser running HTTP version 1.0 or 1.1? What version of HTTP is the server running?

    Your browser running HTTP version 1.1. The version of HTTP is the server running is 1.1.

  2. What languages (if any) does your browser indicate that it can accept to the server?

    The languages does your browser indicate that it can accept to the server are English, Vietnamese, French.

  3. What is the IP address of your computer? Of the gaia.cs.umass.edu server?

    The IP address of your computer is 192.168.0.106. The gaia.cs.umass.edu server IP address is 128.119.245.12.

  4. What is the status code returned from the server to your browser?

    Untitled

    The status code returned from the server to your browser is status code 200.

  5. When was the HTML file that you are retrieving last modified at the server?

    The HTML file that you are retrieving last modified at the server is Feb 21, 2022.