Phương thức trong HTTP



Tập hợp các phương thức phổ biến cho HTTP/1.1 được xác định bên dưới và bộ thiết lập này có thể được mở rộng dựa trên các sự yêu cầu. Những tên method này là case-sensitive và chúng phải được sử dụng trong dạng chữ hoa.

STT Phương thức và miêu tả
1 GET

GET được sử dụng để lấy lại thông tin từ Server đã cung cấp bởi sử dụng một URI đã cung cấp. Các yêu cầu sử dụng GET nên chỉ nhận dữ liệu và nên không có ảnh hưởng gì tới dữ liệu.

2 HEAD

Tương tự như GET, nhưng nó truyền tải dòng trạng thái và khu vực Header.

3 POST

Một yêu cầu POST được sử dụng để gửi dữ liệu tới Server, ví dụ, thông tin khách hàng, file tải lên, …, bởi sử dụng các mẫu HTML.

4 PUT

Thay đổi tất cả các đại diện hiện tại của nguồn mục tiêu với nội dung được tải lên.

5 DELETE

Gỡ bỏ tất cả các đại diện hiện tại của nguồn mục tiêu bởi URI.

6 CONNECT

Thiết lập một tunnel tới Server được xác định bởi URI đã cung cấp.

7 OPTIONS

Miêu tả các chức năng giao tiếp cho nguồn mục tiêu.

8 TRACE

Trình bày một vòng lặp kiểm tra thông báo song song với path tới nguồn mục tiêu.

Phương thức GET

Một yêu cầu GET lấy dữ liệu từ một Server bởi việc xác định các tham số trong đoạn URL của yêu cầu. Đây là phương thức chính được sử dụng để thu hồi tài liệu. Ví dụ sau chỉ cách sử dụng của phương thức GET để chỉ thị hello.htm:

GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

Server sẽ phản hồi lại yêu cầu trên là như sau:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>

Phương thức HEAD

Phương thức HEAD là có chức năng tương tự như GET, ngoại trừ là Server phản hồi với một dòng và các Header phản hồi, nhưng không có phần thân đối tượng. Ví dụ sau chỉ cách sử dụng của phương thức HEAD để chỉ thị thông tin Header về hello.htm:

HEAD /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

Server phản hồi lại yêu cầu HEAD trên như sau:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed

Bạn chú ý rằng tại đây Server không gửi bất cứ dữ liệu nào sau Header.

Phương thức POST

Phương thức POST được sử dụng khi bạn muốn gửi một vài dữ liệu tới Server, ví dụ, cập nhật file, dữ liệu mẫu, …. Ví dụ sau đây chỉ cách sử dụng của phương thức POST để gửi một dữ liệu mẫu tới Server, mà sẽ được xử lý bởi một process.cgi và cuối cùng một phản hồi sẽ được trả lại:

POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: text/xml; charset=utf-8
Content-Length: 88
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://clearforest.com/">string</string>

Bên Server, scipt process.cgi xử lý dữ liệu đã truyền và gửi phản hồi như sau:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed
<html>
<body>
<h1>Request Processed Successfully</h1>
</body>
</html>

Phương thức PUT

Phương thức PUT được sử dụng để yêu cầu Server để lưu giữ phần thân đối tượng được bao gồm tại một vị trí được xác định bởi URL đã cung cấp. Ví dụ sau yêu cầu Server lưu phần thân đối tượng đã cung cấp trong hello.htm tại root của Server:

PUT /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Connection: Keep-Alive
Content-type: text/html
Content-Length: 182
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>

Server sẽ lưu phần thân đối tượng trong tệp hello.jsp và sẽ gửi phản hồi sau trở lại Client:

HTTP/1.1 201 Created
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed
<html>
<body>
<h1>The file was created.</h1>
</body>
</html>

Phương thức DELETE

Phương thức DELETE được sử dụng để yêu cầu Server để xóa một file tại vị trí được xác định bởi URL đã cung cấp. Ví dụ sau yêu cầu Server xóa tệp đã cho hello.htm tại root của Server:

DELETE /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Connection: Keep-Alive

Server sẽ xóa một tệp đã được đề cập và sẽ gửi phản hồi trở lại tới Client:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed
<html>
<body>
<h1>URL deleted.</h1>
</body>
</html>

Phương thức CONNECT

Phương thức CONNECT được sử dụng bởi Client để thành lập một kết nối mạng tới Server qua HTTP. Ví dụ sau yêu cầu một kết nối với một Server đang chạy trên host tutorialspoint.com:

CONNECT www.tutorialspoint.com HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

Kết nối được thành lập với Server và phản hồi sau được gửi trả lại tới Client:

HTTP/1.1 200 Connection established
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)

Phương thức OPTIONS

Phương thức OPTIONS được sử dụng bởi Client để tìm ra các phương thức HTTP và các chức năng được hỗ trợ bởi một Server. Client có thể xác định một URL với phương thức OPTIONS hoặc một dấu * để hướng tới toàn bộ Server. Ví dụ sau yêu cầu một danh sách các phương thức được hỗ trợ bởi một Server đang chạy trên tutorialspoint.com:

OPTIONS * HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

Server sẽ gửi một thông tin dựa trên định cấu hình hiện tại của Server, ví dụ:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Type: httpd/unix-directory

Phương thức TRACE

Phương thức TRACE được sử dụng để ánh xạ các nội dung của một yêu cầu HTTP tới người yêu cầu mà có thể được sử dụng cho mục đích debug tại thời điểm của sự phát triển. Ví dụ sau chỉ cách sử dụng của phương thức TRACE:

TRACE / HTTP/1.1
Host: www.tutorialspoint.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

Server sẽ gửi thông báo sau trong phản hồi tới yêu cầu trên:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Connection: close
Content-Type: message/http
Content-Length: 39

TRACE / HTTP/1.1
Host: www.tutorialspoint.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

Loạt bài hướng dẫn học HTTP cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com