HTTP Request Message

HTTP Requests

HTTP Request Message

Top  Previous  Next

* Nguồn bài viết tại đây.

* Tham khảo thêm tài liệu tiếng Anh rất chi tiết tại đây.

 

 

I) HTTP REQUEST MESSAGE

 

Khi Client gửi một yêu cầu lên sever như tải một trang web nào đó, hay đăng nhập vào trang nào đó thì Client sẽ gửi một HTTP MESSAGE có cấu trúc như mẫu ví dụ sau:

 

HTTP_RequestMessageExample

 

·Dòng đầu tiên trong Request Message được gọi là "Request Line" và có cấu trúc:

Request Method - Request URI - HTTP-version

Request Method

Là yêu cầu của đoạn message, ví dụ : GET, POST, HEAD, OPTIONS.....

Request URI

Là đường dẫn yêu cầu gửi đến. Ví dụ: /doc/test.html

HTTP-version

Phiên bản HTTP. Bây giờ phiên bản thông dụng nhất là "HTTP/1.1"

 

·Các dòng còn lại từ dòng thứ 2 trở đi của Request Message là các Request Header bổ sung cho request đó. Ví dụ: Host, User-Agent, Cookie, Accept, Content-Type ...

 

·Nếu là các phương thức POST hoặc PUT thì sẽ có thêm một đoạn dữ liệu được gửi lên server để xử lí (Request Message Body) (GET cũng có nhưng rất hiếm). Ví dụ: bookId=12345&author=Tan+Ah+Teck...

 

 

 

II) HTTP Response Message

 

Cũng như HTTP Requeset Message, HTTP Respone Message cũng là một HTTP Message, do đó nó có cấu trúc của 1 HTTP Message như mẫu ví dụ sau:

 

HTTP_ResponseMessageExample

·Dòng đầu tiên của Respone Message được gọi là "Status Line" (Dòng trạng thái) và có cấu trúc:

HTTP-version  - Status Code - Reason Phrase

HTTP-version

Phiên bản HTTP. Bây giờ phiên bản thông dụng nhất là "HTTP/1.1"

Status Code

Mã phản hồi tiêu chuẩn do máy chủ gửi về. Ví dụ: 200, 301, 500...

Reason Phrase

Giải thích ngắn gọn về mã phản hồi do máy chủ gửi về

 

Ví dụ: HTTP/1.1 200 OK hoặc HTTP/1.0 404 Not Found hoặc HTTP/1.1 403 Forbidden..

 

·Các dòng tiếp theo từ dòng thứ 2 của Respone Message là các Respone Header bổ sung. Ví dụ: Content-Type, Content-Length, Connection: Keep-Alive

 

 

 

III) HTTP Request Methods

 

Một client có thể sử dụng một trong số những phương thức sau để gửi Request Message đến Http Server là:

 

Method

Meaning

GET

A client can use the GET request to get a web resource from the server.

HEAD

A client can use the HEAD request to get the header that a GET request would have obtained. Since the header contains the last-modified date of the data, this can be used to check against the local cache copy.

POST

Used to post data up to the web server.

PUT

Ask the server to store the data.

DELETE

Ask the server to delete the data.

TRACE

Ask the server to return a diagnostic trace of the actions it takes.

OPTIONS

Ask the server to return the list of request methods it supports.

CONNECT

Used to tell a proxy to make a connection to another host and simply reply the content, without attempting to parse or cache it. This is often used to make SSL connection through the proxy.

 

 

 

IV) HTTP Status Code

 

Những Status Code thường gặp:

 

Code

Status

Meaning

2xx Success

200

OK

Standard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action.

201

Created

The request has been fulfilled, resulting in the creation of a new resource.

204

No Content

The server successfully processed the request and is not returning any content.

206

Partial Content

The server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.

3xx Redirection

301

Moved Permanently

This and all future requests should be directed to the given URI..

302

Found

The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was "Moved Temporarily")

303

See Other

The response to the request can be found under another URI using a GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a redirect with a separate GET message.

4xx Client errors

400

Bad Request

The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).

401

Unauthorized

Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource.

403

Forbidden

The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort.

404

Not Found

The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.

429

Too Many Requests

The user has sent too many requests in a given amount of time.

5xx Server errors

500

Internal Server Error

A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.

502

Bad Gateway

The server was acting as a gateway or proxy and received an invalid response from the upstream server

503

Service Unavailable

The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.