1. Request và Response trong PHP là gì

Đầu tiên chúng ta sẽ hiểu cơ bản là khi thao tác với các hành động trên một web nào đó ta luôn có 2 hành động. Việc đầu tiên là khi ta thao tác trên web ví dụ như like, comment, đăng ký,… thì tất cả dữ liệu hay yêu cầu sẽ được gửi lên server và ta gọi là request. Tiếp theo là server sẽ phản hồi lại và gửi kết quả cho chúng ta thì gọi là response. Web chính là một vòng tuần hoàn của các requestresponse diễn ra giữa client và server(máy khách và máy chủ). Đây sẽ là 2 khái niệm được nhắc đến thường xuyên và ta phải hiểu và nắm vững về chúng.

Request là những thông tin mà từ client gửi lên server. Ở đây chính là những dữ liệu mà ta đã nhập vào.

Response là dữ liệu mà server trả về cho chúng ta sau khi phân tích dữ liệu của chúng ta.

Ví dụ: bạn lên google tìm kiếm laptrinhtudau.com sẽ ra giao diện trang web. Hay các bạn tìm kiếm facebook.com và đăng nhập vào tài khoản của bạn, đó chính là đã thực hiện request và response.

2. HTTP request và HTTP response trong PHP

HTTP là viết tắt của Hypertext Transfer Protocol là giao thức truyền tải siêu văn bản. Sử dụng giao thức này máy khác(client) sẽ gửi dữ liệu lên máy chủ(server), và ngược lại dựa vào những dữ liệu đó mà máy chủ sẽ phản hồi lại máy khách.

2.1. HTTP Request

Request trong tiếng anh có nghĩa là lời yêu cầu, đề nghị. Ở đây thì HTTP request được gọi là “thông báo yêu cầu HTTP”. Đây là thông tin mà client sẽ gửi lên server, yêu cầu server xử lý.

Khi ta lên trình duyệt tìm kiếm một địa chỉ nào đó(ví dụ facebook.com) ngay lập tức thì trình duyệt sẽ dựa vào tên domain(tên miền) yêu cầu truy cập đến địa chỉ IP mà domain này trỏ tới. Lúc này thì máy chủ sẽ phân tích yêu cầu của ta và sẽ gửi luồn xử lý tới vị trí lưu trữ của mã nguồn PHP. Đây là nguyên lý hoạt động của HTTP request.

2.2. HTTP Response

Response trong tiếng anh có nghĩa là lời phản hồi. Và ở đây thì HTTP response được gọi là “thông báo phản hồi HTTP”. Đây là kết quả mà server sẽ trả về cho client.

Khi ta nhập địa chỉ vào, kết quả trả về chính là trang web của địa chỉ đó. Dữ liệu mà server trả về chính là đoạn mã HTML kèm theo các thông tin của header. Trình duyệt sẽ dựa vào các thông tin này để hiển thị trạng thái kết quả của request. Mã HTML được dùng để hiển thị giao diện của trang web đó. Nếu như ta nhập sai thì thông tin của header đó cũng không có gì. Đây cũng là nguyên lý hoạt động của HTTP Response.

<method> <request-URL> <http-serverion>
<headers>
<body>

3. Cấu trúc của HTTP request và ý nghĩa của mỗi đối tượng

Mỗi HTTP request chứa ba thành phần: Request Line, Request Header, Request Body.

3.1. Request Line

Bắt đầu một HTTP request là 3 dòng thông tin, đó chính là request line

Method : để cho máy chủ biết phải làm gì với thông tin hoặc tài nguyên được gửi đến. Các phương thức như GET, POST, …

URL : là địa chỉ hình thành được tài nguyên, hiểu đơn giản chính là đường dẫn của nó.

HTTP version là phiên bản HTTP đang sử dụng.

3.2. Request Header

Sẽ 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. Từ việc sử dụng các request header, máy chủ sẽ biết cách xử lý thông tin mà máy client yêu cầu.

3.3. Request Body

Đây là một 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ủ. Request Body sẽ gửi thông tin bổ sung theo yêu cầu của máy chủ để xử lý request đúng cách.

4. Cấu trúc của HTTP response và ý nghĩa của mỗi đối tượng

HTTP response có cấu trúc là 3 phần: Status Line, Response header, Response Body.

4.1. Status Line

Trong status line có 3 thành phần:

  • HTTP version: phiên bản HTTP cao nhất mà server hỗ trợ.
  • Status code: mã kết quả trả về.
  • Reason-Phrase: mô tả về status code.

4.2. Response header

Cũng giống như request, Response header cũng sẽ có 0 hoặc nhiều header. Tuy nhiên rất hiếm khi mà một Response không có header. Các header được sử dụng để truyền thông tin bổ sung cho client.

4.3. Response body

Sử dụng để chứa dữ liệu, tài nguyên mà client yêu cầu.

Bài viết này có vẻ hơi nặng lý thuyết nhưng Response và Request là 2 thuật ngữ rất quan trọng và các bạn cần phải nắm vững cho việc học hay là sau này cho việc phát triển các trang web, ứng dụng web của bạn!