Môn học: Nhập môn Mạng máy tính - IT005

Lab 2 - Phân tích gói tin HTTP với Wireshark

(Sniffing HTTP Traffic with Wireshark)

GVHD: ThS. Đỗ Thị Hương Lan

A. Tổng quan

1. Mục tiêu

2. Kiến thức nền tảng

3. Môi trường & công cụ

B. Thực hành

1. Tạo 1 website đơn giản trên localhost

Sinh viên có thể tìm hiểu thêm về HTML tại: http://www.w3schools.com/ hoặc tự tạo một trang web khác tương đương bằng HTML

Tham khảo mã nguồn sau đây:


<!DOCTYPE html>
<html>
	<head>
		<title>Thực hành nhập môn mạng máy tính - Lab 2</title>
		<meta charset="utf-8">
		<link rel="icon" type="image/png" href="https://nc.uit.edu.vn/wp-content/uploads/2014/12/logo_mmt-nth.png">
	</head>
	<body>
		<center>
			<img src="https://portal.uit.edu.vn/Styles/profi/images/logo186x150.png"/>
		</center>
		<center><h1>MSSV: 123456</h1></center>
		<center><h2>Họ và tên: Nguyễn Văn An</h2></center>
	</body>
</html>

*Chú thích: Link ảnh logo UIT

Xem hướng dẫn tại Video dưới đây



2. HTTP GET/response có điều kiện

Sinh viên sẽ tìm hiểu về cơ chế caching của trình duyệt và HTTP có điều kiện

HTTP và Cơ chế Cache



Các loại cache

Thực hiện các bước sau:
 • Bước 1: Khởi động trình duyệt và cần đảm bảo cache của trình duyệt đã được xóa
 • Bước 2: Khởi động Wireshark, lựa chọn interface phù hợp và bắt đầu bắt gói tin
 • Bước 3: Truy cập vào trang web của mình đã tạo ra, hoặc URL mà GV cung cấp.
 • Bước 4: Nhanh chóng nhập URL đó và truy cập đến một lần nữa (hoặc chọn refresh button trên trình duyệt).
 • Bước 5: Dừng bắt gói tin và lưu lại dưới định dạng MSSV-Bai1.pcapng

URL thay thế: http://it005-demo.landth.info/lab/lab2/20520000.html

Mở file và nhập “http” vào cửa sổ display-filter để hiển thị các thông điệp HTTP

Trả lời các câu hỏi sau kèm theo hình ảnh minh chứng kết quả từ Wireshark:

  1. Trình duyệt đang sử dụng phiên bản HTTP 1.0 hay 1.1? Phiên bản HTTP server đang sử dụng là bao nhiêu?
  2. Địa chỉ IP của máy tính bạn là bao nhiêu? Của web server là bao nhiêu?
  3. Các mã trạng thái (status code) trả về từ server là gì?
  4. Server đã trả về cho trình duyệt tổng cộng bao nhiêu bytes nội dung?
  5. Xem xét nội dung của HTTP GET đầu tiên. Bạn có thấy dòng “IF-MODIFIED-SINCE” hay không?
    Gợi ý: HTTP GET đầu tiên là gói tin đầu tiên yêu cầu đến URL đang truy cập. Bỏ qua các gói tin không liên quan khác
  6. Xem xét nội dung phản hồi từ server đối với HTTP GET đầu tiên. Server có trả về nội dung của file HTML hay không? Mã trạng thái đi kèm là gì? Giải thích ý nghĩa
  7. Xem xét nội dung của HTTP GET thứ 2. Bạn có thấy dòng “IF-MODIFIED-SINCE” hay không? Nếu có, giá trị của IF-MODIFIED-SINCE là gì?
    Gợi ý: HTTP GET thứ 2 là gói tin thứ 2 yêu cầu đến URL đang truy cập. Bỏ qua các gói tin không liên quan khác
  8. Mã trạng thái HTTP được trả về từ server tương ứng với HTTP GET thứ 2 là gì? Ý nghĩa nó là gì? Server có thật sự gửi về nội dung của file hay không? Giải thích
  9. Trình duyệt đã gửi bao nhiêu HTTP GET? Đến những địa chỉ IP nào?

3. Truy cập trang HTML dài

Sinh viên thử nghiệm với những trang HTML dài (kích thước lớn) để tìm hiểu quá trình chia phân đoạn (segment) của HTTP

Website với địa chỉ sau: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html có chứa nội dung HTML với kích thước khá lớn (>4500 bytes). Chúng ta sẽ xem xét điều gì xảy ra khi download một file HTML dài

Thực hiện các bước sau:
 • Bước 1: Khởi động trình duyệt và cần đảm bảo cache của trình duyệt đã được xóa
 • Bước 2: Khởi động Wireshark và bắt đầu bắt gói tin
 • Bước 3: Từ trình duyệt, truy cập đến địa chỉ sau: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
 • Bước 4: Dừng bắt gói tin và lưu lại dưới định dạng MSSV-Bai2.pcapng

Mở file và nhập “http” vào cửa sổ display-filter để hiển thị các thông điệp HTTP.
Chọn 1 gói tin, chọn chuột phải, chọn Follow > TCP Stream

Trả lời các câu hỏi sau kèm theo hình ảnh minh chứng kết quả từ Wireshark:

  1. Trình duyệt đã gửi bao nhiêu HTTP GET?
  2. Cần bao nhiêu TCP segments để chứa hết HTTP response và nội dung của The Bill of Rights?
  3. Dòng chữ “Amendment V” được chứa trong gói tin phản hồi thứ mấy?

4. Chứng thực HTTP

Sinh viên truy cập vào một website được bảo vệ bởi password và quan sát chuỗi thông điệp HTTP trao đổi giữa trình duyệt và website đó

Website với địa chỉ sau: http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html được bảo vệ bởi password với username là “wireshark-students” (không có ngoặc kép), và password là “network” (không có ngoặc kép).

Thực hiện các bước sau:
 • Bước 1: Khởi động trình duyệt và cần đảm bảo cache của trình duyệt đã được xóa
 • Bước 2: Khởi động Wireshark và bắt đầu bắt gói tin
 • Bước 3: Từ trình duyệt, truy cập đến địa chỉ sau: http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html
 • Bước 4: Nhập username và password
 • Bước 5: Dừng bắt gói tin và lưu lại dưới định dạng MSSV-Bai3.pcapng

Mở file và nhập “http” vào cửa sổ display-filter để hiển thị các thông điệp HTTP

Trả lời các câu hỏi sau kèm theo hình ảnh minh chứng kết quả từ Wireshark:

  1. Mã trạng thái và ý nghĩa nó trong HTTP response tương ứng với HTTP GET đầu tiên là gì?
  2. Khi trình duyệt gửi HTTP GET lần thứ 2, trường dữ liệu nào mới nào xuất hiện trong HTTP GET?

C. Yêu cầu và Đánh giá

1. Yêu cầu

Đặt tên file báo cáo/thư mục theo định dạng như mẫu:

MSSV_HoTen_LabX

Ví dụ: 18521007_NguyenVanA_Lab2

2. Đánh giá

Sinh viên tìm hiểu và tự thực hiện được bài thực hành, trả lời đầy đủ các yêu cầu đặt ra, trình bày báo cáo chi tiết, rõ ràng theo mẫu báo cáo đã được cung cấp