Request là gì? Tìm hiểu về Request và Response trong lập trình Web
Web là một vòng tuần hoàn của các Request và Response diễn ra giữa máy khách và máy chủ. Khi học lập trình web, Request và Response là hai khái niệm thường xuyên được nhắc đến và bắt buộc bạn phải hiểu về chúng. Vậy cụ thể Request là gì? Response là gì? Hãy cùng tìm hiểu về Request và Response trong lập trình web qua bài viết sau đây nhé.
HTTP là gì?
HTTP là viết tắt của Hypertext Transfer Protocol (Giao thức truyền tải siêu văn bản). Sử dụng giao thức này, máy khách (client) sẽ gửi yêu cầu đến máy chủ (server) và dựa trên yêu cầu đó, máy chủ và trình duyệt web phản hồi lại máy khách.
Mục lục nội dung
Tóm lại, chúng ta có thể nói rằng đó là cơ sở để một máy tính (máy khách) giao tiếp với máy tính khác (máy chủ).
HTTP Request là gì?
Một khi kết nối được thiết lập bằng giao thức HTTP giữa máy khách và máy chủ, máy khách sẽ gửi một Request (yêu cầu) dưới dạng dữ liệu nhị phân đến máy chủ để yêu cầu truy cập các file hoặc thông tin cụ thể từ máy chủ.
Mỗi HTTP Request chứa ba thành phần: Request Line, Request Header và Request Body (tuỳ chọn).
● Request Line:
- Chỉ định phương thức (GET, POST, PUT, DELETE, …), cho biết máy chủ phải làm gì với thông tin hoặc tài nguyên;
- Chứa URL của Request được sử dụng để tìm tài nguyên trên máy chủ;
- Chỉ định phiên bản giao thức HTTP (ví dụ: HTTP/1.0 hoặc HTTP/1.1).
● Request Header: Bao gồm 0 hoặc nhiều Header.
Các Header được sử dụng để truyền đi nhiều thông tin hơn về Request, và từ việc sử dụng các Request Header, máy chủ biết cách xử lý thông tin mà máy khách yêu cầu.
Ví dụ: Hãy để ý mục Accept-Language. Nó cho máy chủ biết về ngôn ngữ ưu tiên của máy khách. Điều này có thể được sử dụng để trả lời máy khách bằng ngôn ngữ ưu tiên của họ.
● Request Body: Đây là một thành phần tùy chọn của HTTP Request được sử dụng để gửi dữ liệu bổ sung đến máy chủ. Ví dụ: một loại file JSON hoặc XML.
Request Body sẽ gửi thông tin bổ sung theo yêu cầu của máy chủ để xử lý Request hiện tại đúng cách. Trong ví dụ đơn giản đang xét, Request được gửi đến máy chủ không có thành phần Body này.
HTTP Response là gì?
Ngược lại với HTTP Request, HTTP Response là gói thông tin được gửi bởi máy chủ đến máy khách để phản hồi Request trước đó của máy khách. HTTP Response chứa những thông tin được yêu cầu bởi máy khách.
Giống như HTTP Request, HTTP Response cũng có cấu trúc tương tự gồm 3 thành phần: Status Line, Response Header và Response Body.
● Status Line: Bao gồm ba phần:
- HTTP Version: Phiên bản giao thức HTTP;
- Status Code: Mã trạng thái;
- Reason Phrase (còn gọi là Status Text): Mô tả trạng thái.
Mã trạng thái là một số nguyên có 3 chữ số, được cấp bởi máy chủ để phản hồi Request của máy khách gửi đến. Mã trạng thái của HTTP Response được chia thành năm lớp theo tiêu chuẩn, và lớp được xác định bởi chữ số đầu tiên của mã trạng thái:
- 1xx: Thông tin – Request đã được tiếp nhận, quá trình tiếp tục;
- 2xx: Thành công – Request đã được tiếp nhận, hiểu và chấp nhận thành công;
- 3xx: Chuyển hướng – Cần thực hiện thêm hành động để hoàn thành Request;
- 4xx: Lỗi máy khách – Request chứa cú pháp sai hoặc không thể thực hiện được;
- 5xx: Lỗi máy chủ – Máy chủ không thực hiện được một Request rõ ràng hợp lệ.
Trong ví dụ về dịch vụ web thời tiết đang xét, ở phần Response, dòng đầu tiên được gọi là Status Line (như thể hiện trong hình dưới đây).
Có thể thấy dòng Status Line chứa những thông tin sau:
- Phiên bản giao thức HTTP: HTTP/1.1;
- Mã trạng thái: 200;
- Thông báo trạng thái: OK.
● Response Header: Giống như Request Header, Response Header cũng chứa 0 hoặc nhiều dòng Header. Tuy nhiên, rất hiếm khi một Response không có Header. Các Header được sử dụng để truyền thông tin bổ sung cho máy khách.
Trong Response Header như hình trên, có một Header tên là Content-Type. Giá trị của nó là application/json; charset=utf-8. Điều đó có nghĩa là máy chủ đang thông báo cho máy khách rằng phần Body của Response sẽ chứa dữ liệu định dạng JSON.
● Response Body: Chứa dữ liệu tài nguyên được máy khách yêu cầu.
Trong ví dụ đang xét, thành phố Hyderabad được yêu cầu dữ liệu về thời tiết. Hãy nhìn vào Response Body, nó chứa thông tin về thời tiết của thành phố này, chẳng hạn như nhiệt độ, độ ẩm, mô tả thời tiết và một vài thuộc tính khác.
Qua bài viết trên, mình đã giới thiệu một cách đơn giản để giúp các bạn hiểu được Request và Response là gì trong lập trình web. Đây là hai thuật ngữ rất quan trọng cần phải nắm rõ nếu bạn đang đi theo con đường phát triển các trang web và ứng dụng web. Hi vọng rằng những thông tin vừa chia sẻ ở trên sẽ giúp ích cho các bạn!