Phân tích HTTP bằng Wireshark

Http Analysis Using Wireshark



HTTP là gì?

Đầu tiên là tất cả dạng đầy đủ của HTTP là Giao thức truyền siêu văn bản. HTTP là một giao thức lớp ứng dụng trong mô hình ISO hoặc TCP / IP. Xem hình bên dưới để tìm hiểu HTTP nằm dưới lớp ứng dụng.







HTTP được sử dụng bởi World Wide Web (w.w.w) và nó xác định cách thức các tin nhắn được định dạng và truyền qua trình duyệt. Vì vậy, xác định HTTP mô tả lại hành động nên được thực hiện khi trình duyệt nhận được lệnh HTTP. Và HTTP cũng xác định các quy tắc để truyền lệnh HTTP để lấy dữ liệu từ máy chủ.



Ví dụ: khi bạn nhập url vào trình duyệt (Internet explorer, Chrome, Firefox, Safari, v.v.), nó thực sự gửi một lệnh HTTP đến máy chủ và máy chủ sẽ trả lời bằng lệnh phê duyệt.



Phương thức HTTP:

Có một số phương pháp cho HTTP / 1.1 (Đây là phiên bản HTTP)





GET, HEAD, POST, PUT, DELETE, CONNECT, OPTION và TRACE.

Chúng tôi sẽ không đi vào chi tiết của từng phương pháp thay vào đó chúng tôi sẽ tìm hiểu về các phương pháp được thấy khá thường xuyên.



HIỂU ĐƯỢC: Yêu cầu GET hỏi dữ liệu từ máy chủ web. Đây là một phương pháp chính được sử dụng để kiểm tra lại tài liệu. Chúng ta sẽ xem một ví dụ thực tế về phương pháp này.

BÀI ĐĂNG: Phương thức POST được sử dụng khi cần gửi một số dữ liệu đến máy chủ.

HTTP là Wiresahark:

Hãy thử điều gì đó thực tế để hiểu cách thức hoạt động của HTTP?

Vì vậy, trong ví dụ này, chúng tôi sẽ tải xuống alice.txt (Tệp dữ liệu có trong máy chủ) từ gaia.cs.umass.edu người phục vụ.

Setps:

  1. Mở URL http://gaia.cs.umass.edu/wireshark-labs/alice.txt [Chúng tôi biết url đầy đủ để tải xuống alice.txt] trong trình duyệt máy tính.
  2. Bây giờ chúng tôi thấy tệp đã tải xuống trong trình duyệt. Đây là ảnh chụp màn hình

  1. Song song, chúng tôi đã nắm bắt các gói tin trong Wireshark.

Trao đổi gói HTTP trong Wireshark:

Trước khi đi vào HTTP, chúng ta nên biết rằng HTTP sử dụng cổng 80 và TCP làm giao thức lớp truyền tải [Chúng tôi sẽ giải thích TCP trong một cuộc thảo luận chủ đề khác].

Bây giờ, hãy xem điều gì xảy ra trong mạng khi chúng tôi đặt URL đó và nhấn enter trong trình duyệt.

Đây là ảnh chụp màn hình cho

Bắt tay 3 chiều TCP ——-> HTTP OK ——-> Dữ liệu TCP [nội dung của alice.txt] ——->

HTTP-OK

Bây giờ chúng ta hãy xem có gì bên trong các gói HTTP GET và HTTP OK.

Lưu ý: Chúng tôi sẽ giải thích các trao đổi TCP trong một cuộc thảo luận chủ đề khác.

HTTP NHẬN:

Sau khi bắt tay 3 chiều TCP [gói SYN, SYN + ACK và ACK] được thực hiện xong, yêu cầu HTTP GET được gửi đến máy chủ và đây là các trường quan trọng trong gói.

1. phương pháp yêu cầu: NHẬN ==> Gói tin là HTTP GET.

2. yêu cầu URI: /wireshark-labs/alice.txt ==> Khách hàng đang yêu cầu tệp alice.txt có trong / Wireshark-labs

3. phiên bản yêu cầu: HTTP / 1.1 ==> Đó là phiên bản HTTP 1.1

4. chấp nhận: văn bản / html, ứng dụng / xhtml + xml, hình ảnh / jxr, * / * ==> Thông báo cho máy chủ về loại tệp mà [trình duyệt phía máy khách] có thể chấp nhận. Ở đây khách hàng đang mong đợi alice.txt là kiểu văn bản.

5. Chấp nhận-Ngôn ngữ: en-US ==> Tiêu chuẩn ngôn ngữ được chấp nhận.

6. người dùng-đại lý: Mozilla / 5.0 (Windows NT 10.0; WOW64; Trident / 7.0; rv: 11.0) như Gecko ==> Loại trình duyệt phía máy khách. Ngay cả khi chúng tôi đã sử dụng Internet explorer nhưng chúng tôi luôn thấy nó / thời gian tối đa cho biết Mozilla

7. mã hóa chấp nhận: gzip, deflate ==> Mã hóa được chấp nhận ở phía máy khách.

8.Host: gaia.cs.umass.edu ==> Đây là tên máy chủ web nơi máy khách đang gửi yêu cầu HTTP GET.

9. kết nối: Keep-Alive ==> Kết nối kiểm soát xem kết nối mạng có mở sau khi giao dịch hiện tại kết thúc hay không. Loại kết nối vẫn tồn tại.

Đây là ảnh chụp màn hình cho các trường gói HTTP-GET

HTTP OK:

Sau khi dữ liệu TCP [nội dung của alice.txt] được gửi thành công HTTP OK được gửi đến máy khách và đây là các trường quan trọng trong gói tin.
1. Phiên bản phản hồi: HTTP / 1.1 ==> Ở đây máy chủ cũng ở phiên bản HTTP 1.1
2. mã trạng thái: 200 ==> Mã trạng thái do máy chủ gửi về.
3.Response Cụm từ: VÂNG ==> Cụm từ phản hồi do máy chủ gửi.

Vì vậy, từ 2 và 3, chúng tôi nhận được 200 OK có nghĩa là yêu cầu [HTTP GET] đã thành công.

4. ngày: Chủ nhật, ngày 10 tháng 2 năm 2019 06:24:19 GMT ==> Ngày, giờ hiện tại tính theo GMT khi máy chủ nhận được HTTP GET.
5. máy chủ: Apache / 2.4.6 (CentOS) OpenSSL / 1.0.2k-fips PHP / 5.4.16 mod_perl / 2.0.10 Perl / v5.16.3 ==> Chi tiết máy chủ và các phiên bản cấu hình.
6. sửa đổi cuối cùng : Thứ bảy, ngày 21 tháng 8 năm 2004 14:21:11 GMT ==> Ngày và giờ sửa đổi lần cuối cho tệp alice.txt.
7. thẻ: 2524a-3e22aba3a03c0 ==> ETag cho biết nội dung không được thay đổi để hỗ trợ bộ nhớ đệm và cải thiện hiệu suất. Hoặc nếu nội dung đã thay đổi, thẻ đánh dấu rất hữu ích để giúp ngăn các bản cập nhật đồng thời của tài nguyên ghi đè lẫn nhau.
8. Chấp nhận-Phạm vi: byte ==> Byte là đơn vị được sử dụng trong máy chủ cho nội dung.
9. Nội dung-Độ dài: 152138 ==> Đây là tổng độ dài của alice.txt tính bằng byte.
10. Keep-Alive: thời gian chờ = 5, tối đa = 100 ==> Giữ các thông số còn sống.
11. kết nối: Cố sống đi ==> Kết nối kiểm soát xem kết nối mạng có mở sau khi giao dịch hiện tại kết thúc hay không. Loại kết nối vẫn tồn tại.
12. Nội dung-Loại: văn bản / thuần túy; bảng mã = ​​UTF-8 ==> Loại nội dung [alice.txt] là văn bản và tiêu chuẩn bộ ký tự là UTF-8.

Đây là ảnh chụp màn hình cho các trường khác nhau của gói HTTP OK.

Vì vậy, bây giờ chúng tôi biết điều gì sẽ xảy ra khi chúng tôi yêu cầu bất kỳ tệp nào có trong máy chủ web.

Phần kết luận:

HTTP là giao thức ứng dụng đơn giản mà chúng ta sử dụng hàng ngày trong cuộc sống. Nhưng nó không an toàn nên HTTPS đã được triển khai. S là viết tắt của an toàn. Đó là lý do tại sao tên máy chủ web tối đa của bạn bắt đầu bằng http s: // [tên trang web] . Điều này có nghĩa là tất cả thông tin liên lạc giữa bạn và máy chủ đều được mã hóa. Chúng tôi sẽ có cuộc thảo luận riêng về HTTPS này trong tương lai.