Tải bản đầy đủ (.docx) (113 trang)

tìm hiểu về các cách tấn công phổ biến nhất hiện nay và cách phòng chống

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.62 MB, 113 trang )

1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
Giáo viên hướng dẫn

ThS. Nguyễn Thị Thanh Vân


2
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………


………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
Giáo viên phản biện


3

MỤC LỤC


4

DANH MỤC HÌNH ẢNH


5


PHẦN MỞ ĐẦU


6

GIỚI THIỆU
Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và
sự phát triển của mạng Internet ngày càng đa dạng và phong phú. Các dịch vụ trên
mạng đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội. Các thông tin
trên Internet cũng đa dạng về nội dung và hình thức, trong đó có rất nhiều thông tin
cần được bảo mật cao hơn bởi tính kinh tế, tính chính xác và tính tin cậy của nó.
Bên cạnh đó, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạp
hơn. Do đó đối với mỗi hệ thống, nhiệm vụ bảo mật được đặt ra cho người quản trị
mạng là hết sức quan trọng và cần thiết. Xuất phát từ những thực tế đó, chúng ta sẽ
tìm hiểu về các cách tấn công phổ biến nhất hiện nay và các phòng chống các loại
tấn công này thông qua một công cụ là mod_security.
Chính vì vậy, thông qua việc nghiên cứu một số phương pháp tấn công và
cách bảo mật các loại tấn công này, chúng em mong muốn góp một phần nhỏ vào
việc nghiên cứu và tìm hiểu về các vấn đề an ninh mạng giúp cho việc học tập và
nghiên cứu.

TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Vấn đề An ninh trong hệ thống mạng luôn là một trong những mối quan
tâm trong lớn. Tại Việt Nam, An ninh mạng vẫn chưa được nhìn nhận nghiêm túc và
hệ lụy là rất nhiều Website đã bị tấn công, thiệt hại gây ra là con số không nhỏ.
Thiết nghĩ trong tương lai, Việt Nam sẽ cần đổi mới và tăng cường hệ thống phòng
thủ trước những mối nguy cơ từ Internet.
Chính vì vậy, đề tài “Phát hiện và chống xâm nhập web server
apache với Modsecurity” đã được chọn làm đề tài tiểu luận chuyên ngành với

mong muốn bổ sung kiến thức về an ninh mạng và cách xây dựng hệ thống phòng
chống tấn công, phục vụ cho công việc sau này.

PHẠM VI NGHIÊN CỨU
Đề tài này chúng em sẽ xem xét các kiểu tấn công cơ bản và cách phòng chống tấn
công web server bằng công cụ Modsecurity trên hệ điều hành windown 7, từ đây
chúng ta sẽ có một cách nhìn tổng thể về bảo mật web server apache.


7

PHƯƠNG PHÁP NGHIÊN CỨU
-

Tìm đọc các tài liệu trên mạng, tham khảo nội dung trong đó.
Tải các ebook liên quan đến htpp, modsecurity.
Coi các video hướng dẫn.


8

PHẦN NỘI DUNG


Chương 1. HTTP

9

CHƯƠNG 1. HTTP
1.1. Giới thiệu về HTTP:

1.1.1. Tổng quan về HTTP:
Tiêu chuẩn Hypertext Transfer Protocol (HTTP) – Giao thức truyền siêu văn
bản được ứng dụng để truyền tải tài liệu và các tệp siêu văn bản giữa máy chủ Web
(Web server) và máy khách Web (Web client) thông qua một trình duyệt Web. Cụ
thể hơn, HTTP là một giao thức ở tầng ứng dụng trong các hệ thống thông tin phân
tán, cộng tác, siêu phương tiện (hypermedia), cho phép một máy khách gửi yêu cầu
đơn giản dạng tệp siêu văn bản đến máy chủ và nhận đáp ứng từ máy chủ.
Tim Berners-Lee, một nhà khoa học máy tính người Anh và nhóm dự án
“World Wide Web” là những người đầu tiên được công nhận phát minh
ra HTTP cùng với ngôn ngữ đánh dấu siêu văn bản HTML (HyperText Markup
Language), công nghệ liên quanđến máy chủ web và trình duyệt web dựa trên văn
bản. Cho đến nay, giao thức HTTP gồm có ba phiên bản là:
• Phiên bản đầu tiên là HTTP 0.9, được Hiệp hội web toàn cầu (World Wide
Web - W3C) công bố năm 1991 (có thể tham khảo tài liệu tại đây). Đây là
giao thức đơn giản để truyền dữ liệu thô trên Internet.
• Phiên bản thứ hai là HTTP 1.0, được định nghĩa tại RFC 1945 vào năm
1996 (RFC - Request for Comments, là những tài liệu kỹ thuật và tổ chức
về Internet, bao gồm những tài liệu đặc tả kỹ thuật và chính sách được tổ
chức IETF (Internet Engineering Task Force – Nhóm chuyên trách kỹ
thuật Internet) phát hành), cho phép thông điệp định dạng kiểu giao thức
mở rộng thư Internet đa chức năng (Multipurpose Internet Mail
Extensions - MIME), như kiểu văn bản phi cấu trúc (Text), kiểu hình ảnh
(Image), kiểu âm thanh (Audio), kiểu phim (Video), kiểu ứng dụng
(Application), chứa các thông tin mô tả về dữ liệu được truyền và các
tham số chỉnh sửa theo yêu cầu/đáp ứng. Tuy nhiên, phiên bản này không
tác động nhiều đến các proxy phân cấp, bộ nhớ đệm, nhu cầu kết nối liên
tục hay đến các máy chủ lưu trữ ảo. Proxy là một chương trình trung


Chương 1. HTTP

gian hoạt

10
động

vừa

như

một máy

chủ và

vừa như một

máy

khách nhằm mục đích thực hiện các yêu cầu thay cho các máy khách khác.
• Phiên bản thứ ba là HTTP 1.1, lần đầu tiên được công bố tại RFC
2608 vào tháng 01 năm 1997 và sau đó được cập nhật tại RFC 2616 vào
tháng 07 năm 1999. HTTP 1.1 có các yêu cầu nghiêm ngặt hơn HTTP 1.0
để đảm bảo tính tin cậy khi thực hiện các tính năng của nó.
1.1.2. Lớp giao thức HTTP:
HTTP là một giao thức lớp ứng dụng trong mô hình OSI. Dùng để
chuyển hoặc truyền tải thông tin trên mạng theo một giao thức đáng tin cậy (TCP)
hoặc không đáng tin cậy (UDP). Nhưng TCP lại là giao thức thường được sử dụng.

Hình 1.1. Quá trình thực hiện yêu cầu và trao đổi thông tin
Hình bên trái cho biết quá trình tạo và gửi thông điệp từ Client đến Server.
Đầu tiên HTTP sẽ tạo ra thông điệp mà nó muốn gửi.

Bước 1: HTTP sẽ đưa thông điệp đó đến tiến trình TCP (Transport layer). Ở
đâythông điệp sẽ được thêm các thông tin cụ thể của giao thức TCP vào thông


Chương 1. HTTP

11

điệp và tạo nên TCP segment. Hành động này cũng tương tự như việc ta ghi thông
tin địa chỉ người nhận, người gửi trên phong bì khi gửi thư.
Bước 2: Tiến trình TCP sẽ đưa Segment này đến tiến trình IP (Network Layer).Giai
đoạn này, tiến trình IP sẽ thêm các thông tin vào Segment và tạo nên một
IP Datagram.
Bước 3: Thực hiện các giao thức kiểm soát các công nghệ mạng của hệ thống.
Bước 4: Sau khi có đầy đủ các thông tin thì thông điệp HTTP sẽ được gửi
đếnWebServer. Thông điệp này được gửi dưới dạng Packet hoặc Frame.
Hình bên phải cho biết những gì sẽ xảy ra với gói tin HTTP khi nó đến WEB server.
Trước khi đến được WEB server được chỉ định thì gói tin HTTP có thể đã đi qua
nhiều hệ thống khác và qua nhiều công nghệ mạng được triển khai, nhưng điều đó
không quan trọng cho cả Client và Web Server.
Như ta đã thấy, những gì xảy ra ở Server là ngược lại với Client. Ở mỗi Layer
sẽnhận thông điệp, xử lí (nếu cần) và gửi thông điệp đã được gỡ bỏ đi các thông
tin được thêm vào ở các tầng tương ứng bên Client đã thêm vào lên các tầng cao
hơn.
Cuối cùng, ở bước 8 thông điệp yêu cầu sẽ được gửi đến ứng dụng Web server.
1.1.3. Cơ chế hoạt động chung:
Giao thức HTTP là một giao thức có dạng yêu cầu/đáp ứng. Khi một máy
khách gửi một yêu cầu đến máy chủ gồm phương thức yêu cầu (gồm GET, POST,
HEAD,…), URI, phiên bản giao thức, kèm với thông điệp kiểu MIME gồm các
tham số chỉnh sửa của yêu cầu, thông tin máy khách và nội dung chính thông qua

kết nối đến máy chủ. Máy chủ sẽ đáp ứng bằng dòng trạng thái, gồm phiên bản giao
thức thông điệp và mã thông báo thành công hay lỗi, kèm với thông điệp kiểu
MIME có chứa thông tin về máy chủ, các thông tin thêm về đối tượng và nội dung
chính của đối tượng.
Hầu hết giao tiếp HTTP được khởi tạo từ UA và một yêu cầu sử dụng nguồn
tài nguyên trên máy chủ gốc (Origin Server - O). Trong trường hợp đơn giản nhất,


Chương 1. HTTP

12

giao tiếp này có thể được thực hiện thông qua một kết nối duy nhất (v) giữa UA và
O như

Hình 1.2. Mô hình HTTP đơn giản
(Nguồn: RFC 2616 Hypertext Transfer Protocol)
Tình huống phức tạp hơn xảy ra khi có một hoặc nhiều điểm trung gian trong
chuỗi yêu cầu/đáp ứng. Có ba dạng trung gian phổ biến như: proxy, gateway và
tunnel (Một chương trình trung gian hoạt động như một điểm trung chuyển
giữa hai kết nối). Proxy là một điểm chuyển tiếp, nhận các yêu cầu cho một URI,
viết lại tất cả hoặc một phần của thông điệpvà chuyển tiếp yêu cầu đã định dạng lại
về phía máy chủ xác định bởi URI. Ở đây, gateway hoạt động như một lớp phía trên
của máy chủ khácvà nếu cần thiết, biên dịch các yêu cầu tới giao thức máy chủ cơ
sở. Tunnel hoạt động như một điểm trung chuyển giữa hai kết nối mà không cần
thay đổi thông điệp, các tunnel được sử dụng khi giao tiếp cần phải đi qua một điểm
trung gian (như tường lửa) ngay cả khi điểm trung gian này không hiểu được nội
dung của thông điệp.

Hình 1.3. Mô hình HTTP phức tạp

(Nguồn: RFC 2616 Hypertext Transfer Protocol)
Hình 2 mô tả ba điểm trung gian (A, B và C) giữa tác nhân người dùng và
máy chủ gốc. Một thông điệp yêu cầu/đáp ứng sẽ truyền qua toàn bộ các điểm này
bằng bốn kết nối riêng biệt. Mỗi điểm trung gian có thể được tham gia vào nhiều kết


Chương 1. HTTP

13

nối và các giao tiếp khác tại cùng một thời điểm. Ví dụ, điểm B có thể nhận yêu cầu
từ nhiều máy khách khác ngoài A, hay chuyển tiếp yêu cầu đến nhiều máy chủ khác
ngoài C đồng thời với việc xử lý yêu cầu từ điểm A.

Hình 1.4. Mô hình HTTP phức tạp với bộ nhớ cache
(Nguồn: RFC 2616 Hypertext Transfer Protocol)
Bất cứ thành phần nào tham gia kết nối mà không hoạt động như một tunnel
đều có thể sử dụng một bộ nhớ đệm (cache) nội bộ để xử lý các yêu cầu. Bộ nhớ
đệm giúp cho chuỗi yêu cầu/đáp ứng được xử lý nhanh hơn khi một trong các thành
phần tham gia trong chuỗi có yêu cầu về dữ liệu. Hình 3 sau đây minh họa chuỗi
yêu cầu/đáp ứng từ điểm UA đến điểm B khi tại điểm B có lưu trữ dữ liệu tạm thời
từ điểm O (thông qua điểm C), không được lưu trữ tạm thời tại UA hay tại điểm A.
Thông tin liên lạc HTTP thường diễn ra trên các kết nối TCP / IP. Các cổng
mặc định là TCP 80.
1.1.4. Hoạt động HTTP:
1.1.4.1. Client and server
Cũng giống như các giao thức khác thì HTTP cũng có sự phân biệt
giữa Client và Server. Sự phân biệt này rất quan trọng vì nó thể hiện được vai trò
của từng đối tượng tham gia vào một phiên làm việc. Cụ thể, với HTTP thì Client
có thể được coi là các Browser thực hiện các yêu cầu HTTP, Server là nơi hosting

trang Web (lưu trữ tài nguyên) mà Client truy xuất đến.
 Khởi tạo kết nối:
Một kết nối được bắt đầu khi Client thực hiện một yêu cầu đến Server. Chỉ
có Client mới là nơi bắt đầu một kết nối.


Chương 1. HTTP

14

Server là nơi cung cấp các chức năng và thông tin cho Client khi được yêu
cầu.
Để bắt đầu 1 phiên làm việc, Client sẽ gửi 1 lời yêu cầu đến Server.
Server sẽ trả lời lại những gì Client yêu cầu.

Hình 1.5. Khởi tạo kết nối giữa Client và Server.
 Kết nối:
Vì HTTP là giao thức kết nối có thiết lập kênh truyền (TCP). Vì vậy trước
khi thực hiện các yêu cầu thì HTTP yêu cầu phải tạo một kết nối TCP.
Do Client là nơi có trách nhiệm khởi tạo một kết nối nên Client cũng là nơi
có trách nhiệm thực hiện khởi tạo một kết nối TCP.
Quá trình tạo một kết nối TCP giữa Client và Server được gọi là quá
trình“bắt tay ba bước”.


Chương 1. HTTP

15

Hình 1.6. Quá trình “bắt tay ba bước”

Để kết thúc một kết nối thì chỉ cần 2 gói tin giữa Client và Server:
 Server: gửi 1 flag FIN (finish) đến server.
 Client: phản hồi bằng cách thiết lập các cờ FIN và ACK.
 Duy trì trạng thái kết nối(Persistence):
Trong phiên bản đầu tiên của HTTP, thì mỗi yêu cầu của Client sẽ tạo thành
một kết nối TCP riêng biệt. Điều này sẽ không xảy ra vấn đề với những Web đơn
giản, nhưng với những trang web ngày một phức tạp, đồ họa cao như hiện nay thì
việc mỗi yêu cầu tạo 1 kết nối sẽ trở thành vấn đề lớn vì sẽ chiếm băng thông
hoạt động. Điều đó ảnh hưởng đến hiệu suất hoạt động của Server.
Trong phiên bản HTTP 1.1, thì vấn đề nhiều kết nối đã được loại bỏ và được
thay thế bằng tính năng “duy trì kết nối”. Tính năng này cho phép Client có thể
sửdụng kết nối được chấp nhận ban đầu. Các yêu cầu sau đó của Client sẽ được
thực hiện trên cùng một kết nối.
Sự duy trì kết nối cần phải có sự hợp tác của cả Client và Server. Client sẽ
quyết định sử dụng kết nối liên tục. Client được thực hiện điều này chỉ khi Server
chấp nhận. Server sẽ không đóng kết nối TCP khi yêu cầu ban đầu của Client được
chấp nhận.


Chương 1. HTTP

16

 Pipelining:
Duy trì trạng thái kết nối cho phép một tính năng khác của HTTP nhằm cải
thiện hiệu năng – PipeLining.
PipeLining cho phép Client không phải đợi phản hồi từ Server cho một yêu
cầu trước đó rồi mới được thực hiện 1 yêu cầu khác mà nó cho phép
Client gửi nhiều yêu cầu cùng lúc trong khi chưa nhận được phản hồi từ Server.



Chương 1. HTTP

17

1.1.4.2 Thao tác:
HTTP định nghĩa 4 thao tác cơ bản: GET, POST, PUT, DELETE.
 GET – Wen Page Retrieval:
GET là thao tác đơn giản nhất trong 4 thao tác được định nghĩa trong HTTP.
GET là cách mà Client lấy một đối tượng hoặc tài nguyên nào đó từ Server.


Chương 1. HTTP

18

Hình 1.7. Hoạt động GET của HTTP
 Hoạt động của GET:
Hình trên cho thấy, Client bắt đầu và gửi thông điệp GET đến Server. Thông
điệp này xác định một đối tượng cụ thể mà Client yêu cầu bằng URI. Nếu Server
có thểtrả đáp ứng được yêu cầu thì Server sẽ trả đối tượng về trong gói tin trả về
cùng với một mã trạng thái thành công là 200 OK. Nếu Server không thể đáp ứng
được yêu cầu thì một mã trạng thái khác sẽ được trả về.
Bảng mã trạng thái
Mã trạng thái
1XX
2XX
3XX
4XX
5XX


Ý nghĩa
Thông tin: Server đã nhận được yêu cầu nhưng tạm thời
chưa đáp ứng được.
Thành Công: Server thông báo yêu cầu đã nhận, hiểu, chấp
nhận yêu cầu.
Chuyển hướng: Client được yêu cầu thực hiện lại yêu cầu
nhưng với một URI khác.
Lỗi Client: Yêu cầu của Client có lỗi xảy ra mà Server
không thể đáp ứng được.
Lỗi Server: Server không đáp ứng theo yêu cầu ngay cả khi
yêu cầu của Client là hợp lệ.

 POST – Web Form:
POST là cách thức mà Client gửi thông tin lên cho Server. Các
browser thường sử dụng phương thức POST để gửi 1 form lên Server.


Chương 1. HTTP

19

Khi người dùng tìm kiếm trên “” thì browser sẽ gửi một
yêu cầu POST lên Server , yêu cầu đó sẽ chứa những thông tin tìm kiếm mà người
dùng nhập vào.
Hoạt động của POST cũng tương tự như GET. Client sẽ gửi yêu cầu cùng
với thông tin đến Server thông qua URI. Điểm khác biệt ở đây đó là, Với POST thì
URI để xác đối tượng trên Server có thể xử lí thông tin (form) mà Client gửi lên.
Đối tượng này có thể là 1 script hay chương trình.
Cũng như GET, Server cũng có khả năng gửi thông tin phản hồi về

cho Client. Thông thường thông tin trả về là 1 trang Web để hiển thị thông tin
người dùng đã nhập vào, đối với thông tin tìm kiếm thì sẽ trả về các kết quả tìm
kiếm.

Hình 1.8. Hoạt động của Post
 PUT – File Upload:
PUT cũng là cách thức để Client gửi dữ liệu lên cho Server.

Hình 1.9. Hoạt động của PUT
Theo như hình trên, ta có thể thấy được sự tương tự trong hoạt động
của POST và PUT, cả 2 đều xác định một đối tượng trên Server, cùng truyền dữ
liệu và URI.
Điểm khác biệt quan trong giữa POST và PUT đó là ở URI:


Chương 1. HTTP

20

 POST, thì URI xác định đối tượng có thể xử lí dữ liệu– chương
trình hoặc script.
 PUT, thì URI xác định đối tượng mà Server có thể đặt dữ liệu
(một đường dẫn hoặc tên file) mà Client gửi.
Ví dụ về File Upload.

Khi người dùng click và “upload file” thì browser sẽ bắt đầu gửi một thông
điệp PUT đến Server.
 DELETE:
Với GET và PUT, HTTP đã cung cấp cho Client 1 giao thức tiện lợi trong
việc truyền file. Thao tác DELETE sẽ giúp hoàn thiện chức năng này bằng cách

cung cấp cho Client cách để xóa 1 đối tượng từ Server.
Như hình dưới đây cho thấy hoạt động của DELETE cũng tương tự như các thao
tác khác.

Hình 1.10. Hoạt động của DELETE
Client gửi yêu cầu cùng với URI của đối tượng cần xóa trên Server.
Server sẽ trả về “status code” và dữ liệu kèm theo.
 OPTIONS:


Chương 1. HTTP

21

Các Client sử dụng thông điệp OPTIONS để biết được khả năng của một
máy chủ.

Hình 1.11. Hoạt động của OPTIONS
Nếu Client gửi thông điệp OPTIONS cùng với URI thì Server sẽ hồi đáp
bằng 1 tùy chọn phù hợp với đối tượng mà Client yêu cầu.
Nếu Client gửi thông điệp OPTIONS mà URI là dấu “*” thì Server sẽ hồiđáp 1 tùy
chọn chung nhất mà nó phù hợp với tất các đối tượng.
 HEAD:
Các hoạt động của HEAD cũng giống như của GET. Ngoại trừ, Server không
trả về đối tượng thật sự được yêu cầu. Cụ thể, Server chỉ trả về mã trạng thái
chứkhông trả về dữ liệu.
Client sử dụng HEAD khi muốn kiểm tra một đối tượng có tồn tại hay chưa
nhưng không muốn lấy đối tượng đó.
Ví dụ: Có thể sử dụng thông điệp HEAD để đảm bảo liên kết đến một
đốitượng hợp lệ mà không tiêu tốn băng thông.

Cache trong trình duyệt cũng có thể sử dụng thông điệp HEAD để xem một
đối tượng đã thay đổi hay không.


Chương 1. HTTP

22

Hình 1.12. Hoạt động của HEAD
Nếu không thay đổi thì hiển thị thông tin đã được lưu trước đây.
Nếu thay đổi thì sẽ thực hiện GET để lấy dữ liệu về từ Server.
 TRACE:
Thông điệp TRACE là cách mà Client dùng để kiểm tra đường mạng dẫn đến
Server.
Khi Server nhận được 1 thông điệp TRACE, Server sẽ hồi đáp bằng
cách copy thông điệp TRACE vào thông điệp hồi đáp.

Hình 1.13. Hoạt động của TRACE
TRACE có ích khi có nhiều Server cùng tham vào việc hồi đáp 1 yêu cầu từ
Client. Cụ thể, Một máy chủ trung gian có thể chấp nhận yêu cầu của Client
nhưng lại chuyển sang các Server khác. Khi đó:
 Các Server chuyển tiếp yêu cầu của Client thì Server đó sẽ chỉnh sửa
gói tin Request bằng cách thêm một tùy chọn VIA vào thông điệp.
VIA là một phần thông điệp gửi Server đích.
 Server đích sẽ copy nội dung của thông điệp vào thông điệp phản
hồicủa mình.


Chương 1. HTTP


23

 Khi Client nhận được sẽ thấy được Via trong dữ liệu và Client sẽ
xác định được các Server trong đường đi.

Hình 1.14. Hoạt động của TRACE khi có nhiều Server
1.1.5. Thông điệp
1.1.5.1. HTTP Request:

Hình 1.15. Cấu trúc của HTTP Request
Mỗi request sẽ được bắt đầu với 1 dòng gọi là Request-Line. Dòng này sẽ
thểhiện phương thức, tài nguyên mà client đang thực hiện yêu cầu và phiên bản
HTTP mà client có thể hỗ trợ.
Theo sau dòng Request-Line có thể có một hoặc nhiều thông điệp
Header và thông điệp Body.


Chương 1. HTTP

24

Dòng trắng (Blank line) sẽ theo sau dòng Request-Line và các thông điệp
Header.

Hình 1.16. Thông điệp thực tế được gửi từ Internet Explorer
Trong thông điệp trên, Request-Line chứa ba nội dung: phương thức, URI,
phiênbản HTTP. Mỗi thành phần cách nhau bởi một hoặc nhiều khoảng
trắng. Thông điệp được đánh dấu kết thúc bằng dòng trắng và không có thông điệp
Body.


Hình 1.17. Các thành phần của Request- Line
Như hình trên, thông điệp được gửi bằng phương thức GET đã được chỉ
định rõ trong dòng Request- Line. Mục tiếp theo trong Request-Line đó là
URI chứa tàinguyên cần truy cập, ở đây đó là “/” chỉ ra nguồn tài nguyên yêu
cầu là gốc. Phần cuối cùng của Request- Line là phiên bản của HTTP, ở đây phiên
bản được chỉ rõ là HTTP phiên bản 1.1.
GET chỉ là một trong tám phương thức được định nghĩa bởi HTTP. Bảng sau
đây sẽ trình bày chi tiết các phương thức của HTTP.
Phương thức

Hỗ trợ server

CONNECT

Tùy chọn

Sử dụng
Yêu cầu server (thường là Proxy) để
thiết lập một đường hầm (tunnel).


Chương 1. HTTP

25

DELETE

Tùy chọn

GET


Yêu cầu (bắt buộc)

HEAD

định.
Yêu cầu server trả về tài nguyên đã
được yêu cầu.
Yêu cầu server trả lời như làphương

Yêu cầu (bắt buộc) thức GET nhưng không kèm theo tài

OPTIONS

Tùy chọn

POST

Tùy chọn

PUT

Tùy chọn

TRACE

Yêu cầu server xóa tài nguyên được chỉ

nguyên trong thông điệp trả về.
Yêu cầu server chỉ rõ các tùy chọn mà

nó hỗ trợ cho tàinguyên được chỉ rõ.
Yêu cầu server đưa nội dung của Body
vào tài nguyên được chỉ định trên server.
Yêu cầu server chấp nhận Body của

thông điệp như là tài nguyên trên server.
Tùy chọn
Yêu cầu server trả lời các yêu cầu.
Hình 1.18. Bảng chi tiết phương thức của HTTP

1.1.5.2. HTTP Response

Hình 1.19. Cấu trúc của HTTP Response
Cấu trúc của HTTP response cũng tương tự như cấu trúc của HTTP request.
Chỉcó một điểm khác nhau đó là HTTP response được bắt đầu bằng dòng StatusLine. Status- Line cũng bao gồm 3 thành phần và được phân biệt bằng các khoảng
trắng. Thành phần đầu tiên sẽ thể hiện phiên bản HTTP cao nhất mà Server hỗ


×