You are on page 1of 17

Wireshark lab: HTTP tin2k50

TÌM HIỂU GIAO THỨC HTTP


A)Giới thiệu giao thức HTTP
Mô hình phân tầng OSI
-Nhìn vào mô hình phân tầng OSI ta thấy: HTTP là
một giao thức trong tầng ứng dụng. Application
-HTTP (Hypertext Transfer Protocol ) là một giao thức (HTTP,Mail…)
dùng để chuyển các tệp từ một kho web vào một trình Transport
duyệt để người dùng xem được các trang web đó trên (UDP,TCP…)
mạng web toàn cầu. Network
-HTTP có 2 phiên bản là HTTP/1.1 và HTTP/1.0 (IP,ICMP…)
Datalink
(Ethernet,ADSL…)
Physica
(blts…)
-HTTP hoạt động theo mô hình client/server
 Client yêu cầu truy nhập tới các trang web v à hiển thị chúng lên trình duyệt
 Server nhận yêu cầu và trả lời cho client

-Hoạt động của HTTP:


 Server mở một TCP socket chờ tại cổng 80 (default )
 Client khởi tạo một liên kết TCP tới server
 Server chấp nhận yêu cầu tạo liên kết
 Trao đổi thông điệp HTTP (giao thức ứng dụng)
+ HTTP Request
+ HTTP Response
 Đóng liên kết TCP

1
Wireshark lab: HTTP tin2k50

-Khuôn dạng HTTP Request


H T T P req u est m essa g e

Ví dụ:

-Khuôn dạng HTTP response

Ví dụ:

2
Wireshark lab: HTTP tin2k50

3
Wireshark lab: HTTP tin2k50

B)Wireshark Lab: HTTP


Trong bài lab này chúng ta s ẽ tìm hiểu về một số vẻ bề ngoài của giao thức HTTP: sự tương tác giữa
yêu cầu GET cơ bản và phản hồi của nó, các định dạnh của thông điệp HTTP, truy t ìm các file html
lớn, truy tìm các file html với các đối tượng nhúng, và sự chứng thực và bào mật HTTP.
I)The basic HTTP GET/respone interaction
Hãy bắt đầu sự thăm dò của chúng ta về http bởi việc download một file html đ ơn giản- một file rất
ngắn, và không chứa các đối tượng nhúng. Hãy làm các bước dưới đây:
1.khởi động trình duyệt web của bạn
2.khởi động chương trình bắt gói tin Wireshark, như mô tả trong giới thiệu bài lab(nhưng vẫn
chưa bắt đầu bắt các gói tin). Nhập v ào “http”(chỉ là các từ, không có dấu nháy) trong display-filter-
specification windown, v ới mục đích chỉ để bắt các messages http sẽ đ ược hiển thị dưới packet-list
window. (chúng ta chỉ quan tâm đến giao thức http ở đây, v à không muốn thấy sự lộn xộn của các
gói tin đã bắt được).
3.đợi 1 bit nhiều hơn 1 phút(chúng ta sẽ hiểu tại sao lại ngắn nh ư vậy), và sau đó bắt đầu bắt
các gói tin bằng wireshark.
4.nhập dòng sau vào trình duyệt web của bạn
http://gaia.cs.umass.edu/wireshark -labs/http-wireshark-file1.html
trình duyệt web của bạn sẽ hiển thị rất đơn giản chỉ một dòng file html
5.dừng bắt gói tin bằng wireshark

Hình1: HTTP GET requese

4
Wireshark lab: HTTP tin2k50

Hình 2: HTTP response

Nhìn vào wireshark window ở hình trên, trong packet-listing window có 2 HTTP message bị bắt:
GET message (từ trình duyệt web của bạn đến gaia.cs.umass.edu web server) v à response message
từ server đến trình duyệt web của bạn. Trong packet -contents window thể hiện chi tiết message đ ược
chon. Wireshark cũng hiển thị thông tin về Frame, Ethernet, IP, và TCP packet. Nhưng trong bài lab
này chúng ta chỉ quan tâm đến HTTP.

1.Trình duyệt web đang chạy HTTP version 1.1 . Server đang chạy HTTP/1.1
2.Ngôn ngữ trình duyệt web chỉ ra có thể chấp nhận đ ưa đến server:
Được nhận thấy từ request-header file: Accept-Language đó là ngôn ngữ en-us (english)
3.Địa chỉ IP của máy tính: 192.186.1.2
Địa chỉ IP của gaisa.cs.umass.edu server: 128.119.245.12
4.Status code trả về từ server đến trình duyệt web: 200 OK
5.File HTML mà đang được lấy ra last modified ở server là:
Fri, 3 Oct 2008 13:11:02 GMT
6.Số bytes nôi dung được trả đến trình duyệt là 128 bytes
7.Kiểm tra dữ liệu thô trong packet content window, có những header trong dữ liệu đó mà không
được hiển thị trong packet-listing window. Ví dụ: Transmission Control Protocol, Ethernet II

5
Wireshark lab: HTTP tin2k50

II)The HTTP CONDITIONAL GET/ response interaction


Trong hầu hết các trình duyệt web đều thực hiện l ưu trữ các đối tượng (là một tài liệu hoặc một phần
tài liệu đã được dán vào trong tài liệu khác bằng các lệnh Paste Link, Paste Special, hoặc Emberd Object.)
và vì vậy sẽ thực hiện một Conditional Get khi truy vấn một đối t ượng HTTP. Trong phần này ta sẽ
nghiên cứu về sự ảnh hưởng lẫn nhau của HTTP Conditional Get và HTTP response.
Hãy thực hiện các bước sau:
-Khởi động trình duyệt web và đảm bảo rằng browser’s cache l à rỗng, bằng cách: Tools->Internet
Options->Delete file
-Khởi động Wireshark packet sniffer
-Nhập vào trình duyệt web URL: http://gaia.cs.umass.edu/wireshark -labs/HTTP-wireshark-
file2.html
-Nhanh chóng nhập lại URL vào trình duyệt web (đơn giản hơn là chọn nút refresh trên browser
-Dừng bắt các gói tin, nhập v ào display-filter-specification window “http” để chỉ lấy ra HTTP
message sẽ được hiển thị trong packet-listing window

Hình 1: first HTTP GET request

8.Kiểm tra nội dung của HTTP GET request đầu ti ên từ trình duyệt web đến server. Thì dòng “IF-
MODIFIED-SINCE” trong HTTP Get không có.

6
Wireshark lab: HTTP tin2k50

Hình 2: first HTTP GET response

9.Kiểm tra nội dung phản hồi từ server. Nhận thấy server trả về nội dung của file rất rõ ràng:
Content-type: text/html; charset = ISO -8859-1
Khi download nhiều lần cùng một file trên trình duyệt web thì server chỉ trả về một bản copy file đó
cho request đầu tiên, và cả trường if-modified-since trong browser’s HTTP GET request c ũng vậy.

7
Wireshark lab: HTTP tin2k50

Hình 3: second HTTP GET request

10.Bây giờ kiểm tra second HTTP GET request từ tr ình duyệt web đến server. Thấy có d òng “IF-
MODIFIED-SINCE:” trong HTTP GET.
Thông tin sau if-modifies-since: Fri, 03 Oct 2008 14:10:01 => đây là thông tin v ề thời gian mà
second http get request gửi đến server.

8
Wireshark lab: HTTP tin2k50

Hình 4: second HTTP GET response

11.HTTP status code trả về từ server trong phản hồi của second HTTP GET l à: 304 Not Modified.
Server không tả về rõ ràng nội dung của file. Vì mã trả về là 304 tức là file không được định dạng
Bởi khi thực hiện HTTP GET nhiều lần c ùng lúc thì server sẽ chỉ gửi về một bản copy toàn bộ nội
dung chi tiết của file trong response đầu ti ên, do đó trong response th ứ hai này không thể hiện chi
tiết nội dung file.

9
Wireshark lab: HTTP tin2k50

III)Retrieving Long Documents


Trong hai phần trên chúng ta chỉ thực hiện lấy thông tin của các file html có nội dung đ ơn giản và rất
ngắn. Trong phần tiếp theo n ày chúng ta sẽ xem xem có chuyện gì xảy ra khi thực hiện download
một file html dài. Hãy thực hiện các bước dưới đây:
-Khởi động trình duyệt web, và đảm bảo browser’s cache l à trống.
-Khởi động Wireshark packet sniffer
-Nhập vào trình duyệt web URL: http://gaia.cs.umass.edu/wireshark -labs/HTTP-wireshark-
file3.html
-Dừng bắt các gói tin, nhập “http” v ào display-filter-specification, vì vậy chỉ các http message đ ã bị
bắt được hiển thị.

Hình 1: HTTP GET request

12. chỉ có một HTTP GET request message đ ược gửi đi bởi trình duyệt.

10
Wireshark lab: HTTP tin2k50

Hình 2: HTTP GET response

Hình trên thể hiện một multiple-packet response (đa gói tin ph ản hồi) đến HTTP GET request của
bạn.
Entity body trong phản hồi chứa toàn bộ file html được yêu cầu.Nhưng file html này quá dài đ ể đặt
chúng trong một gói tin TCP, vì vậy mà mỗi single HTTP response message sẽ đ ược TCP chia thành
một vài mẩu nhỏ , mỗi mẩu này sẽ được chứa trong một TCP segment riêng biệt. Mỗi TCP segment
được thu như một gói tin riêng bởi Wireshark, và thực tế thấy rằng single HTTP response đ ược phân
đoạn qua nhiều các gói tin TCP đ ược chỉ ra bởi cụm từ “continuation” được hiển thị bởi Wireshark.
Cần nhấn mạng rằng sẽ không có thông điệp “continuation” trong HTTP.

13.Có 5 data-containing TCP segment cần để mang single http response.


Frame: 8, payload 0-308 (309 bytes)
Frame: 9, payload 309-1760 (1452 bytes)
Frame: 11, payload 1761-3212 (1452 bytes)
Frame: 12, payload 3213 -4664( 1452 bytes)
Frame: 14, payload 4665 -4808 (144 bytes)
14.Status code là 200 OK
15.Không có HTTP status line nào trong truy ền dữ liệu kết hợp với một TCP -induced
“Continuation”

11
Wireshark lab: HTTP tin2k50

IV) HTML Documents with Embeded Objects (văn bản html với các đối tượng nhúng)
Bây giờ chúng ta sẽ xem làm thế nào wireshark hiển thị gói tin bị bắt với các file html mở rộng h ơn
(không chỉ đơn thuần là document nữa), chúng ta có thể thấy chuyện gì xảy ra khi trình duyệt web
của bạn download các file với các đối t ượng nhúng-một file mà bao gồm các đối tượng khác nhau
(ví dụ image files) mà được lưu trữ trên server khác.
Hãy thực hiện các bước sau:
-Khởi động trình duyệt web của bạn, và đảm bảo rằng browser’s cache là trống
-Khởi động wireshark
-Nhập vào trình duyệt URL: http://gaia.cs.umass.edu/wireshark -labs/HTTP-wireshark-file4.html
Trình duyệt web sẽ hiển thị một file html ngắn với hai hình ảnh. Bản thân hai hình ảnh này không
phải chứa trong HTML; thay v ào đó URLs của các hình ảnh được chứa trong file html đ ã dowload.
Trình duyệt web sẽ phải truy tìm những logos này từ những web site đã được chỉ định. Hai hình ảnh
trong bài lab này một là logo của nhà sản xuất được tim tại web site www.aw-bc.com, hình ảnh bìa
sách được lưu trữ ở manic.cs.umass.edu server
-Dừng bắt gói tin bằng wireshark, v à nhập vào “http” trong filter để chỉ lấy ra các thông điệp http

12
Wireshark lab: HTTP tin2k50

16.Có 4 HTTP GET request message đư ợc gửi bởi browser.


Những GET request này được gửi đến các địa chỉ IP sau:
128.119.245.12 –địa chỉ IP của file html cần dowload tại gaia.cs.umass.edu (h ình dưới)

134.214.6.82 –địa chỉ IP của server chứa hình ảnh bìa của cuốn sách tại manic.cs.umass.edu(hình
dưới)

13
Wireshark lab: HTTP tin2k50

165.193.123.218 –địa chỉ IP của web site lưu trữ logo của nhà xuất bản tại www.aw-bc.com (hình
dưới)

Nhưng hình ảnh tại host này tạm thơi bị di chuyển (hình dưới thể hiện phản hồi trả về : 302 Moved
Temporarily)

14
Wireshark lab: HTTP tin2k50

165.193.123.225 là địa chỉ IP của www.pearsonhighered.com

17.Có thể nói 2 hình ảnh này được dowload song song nhau. Bởi nh ìn vào cột time trong hình trên
bạn có thể thấy thời gian gửi yêu cầu ko phụ thuộc việc yêu cầu trước đã được phản hồi hay chưa.

V)HTTP Authentication
Cuối cùng hãy thử đến thăm một web site được bảo vệ bằng password v à khảo sát sự thay đổi trong
chuỗi http message.
Hãy thực hiện các bước sau:
-Hãy đảm bảo rằng browser’s cache l à trống, và đóng trình duyệt web lại. Sau đó khởi động tr ình
duyệt.
-Khởi động wireshark
-Nhập vào trình duyệt web URL: http://gaia.cs.umass.edu/wireshark -labs/protected_pages/HTTP -
wiresharkfile5.html
Đánh username là “wireshark-students” và password là “network” vào box
-Dừng bắt gói tin, và nhập vào filter “http” để chỉ hiển thị thông tin về http messages

15
Wireshark lab: HTTP tin2k50

Hình 1: first http get request message

Hình 2: second http get request message

18.Status code trong phản hồi cho HTTP GET message đầu ti ên từ trình duyệt là: 401 Authorization
Required
19. Khi trình duyệt web gửi HTTP GET message lần thứ hai, có trường mới trong HTTP GET
message là: “Authorization: Basic”
Username và password mà b ạn nhập vào được giải mã thành xâu kí tự
(d2lyZXoYXJrLXNOdwRlbnRzOm5ldHdvcms) đ ặt sau header “Authorization: Basic trong client’s
HTTP GET message.

16
Wireshark lab: HTTP tin2k50

17

You might also like