Mục lục
Khi bạn truy xuất vào một trang web để xem tin tức trên các trang báo hay để mua một sản phẩm nào đó trên shoppe, tiki thì việc đầu tiên các bạn phải làm đó chính là gửi một HTTP request lên các web server để lấy về thông tin mình cần thiết.
Thế bạn có bạn HTTP là gì chưa? nghe xa lạ quá nhỉ, nếu bạn tò mò muốn biết nó là gì thì hãy theo chân mình nhé.
Protocol là gì?
Để hiểu rõ HTTP hơn, chúng ta cần phải biết đến khái niệm protocol cái đã. Đơn giản protocol chỉ là một hệ thống các quy tắc định nghĩa cách dữ liệu được trao đổi giữa các máy tính với nhau.
Tại sao lại cần protocol nhỉ? Hãy thử tưởng tượng nếu không có một chuẩn chung để định dạng dữ liệu thì một thiết bị A truyền thông tin đến thiết bị B theo ý thích của nó thì sẽ gây khó khăn cho B trong việc hiểu và đọc thông tin đấy. Ví dụ như A mã hoá base64, còn thằng B thì không biết nên đọc dữ liệu ra một chuỗi dài loằng ngoằng.
Đấy nếu có chuẩn chung, thì cả hai bên sẽ biết cách đóng gói và cách đọc dữ liệu từ bên truyền đến bên nhận.
HTTP là gì?
HTTP – Hypertext Transfer Protocol là một protocol(giao thức) cho phép tìm nạp các tài nguyên chẳng hạn như hình ảnh, văn bản, HTML v.v. Nó là nền tảng của các hoạt động trao đổi dữ liệu diễn ra trên các website.
HTTP còn được biết đến là một client-server protocol, có nghĩa thông thường chúng ta là người nhận khởi tạo một HTTP request thông thường thực hiện trên trình duyệt web và gửi chúng đến các web server, các server nhận yêu cầu và chuẩn bị các tài liệu cần thiết như ảnh, văn bản, video, v.v gửi trả về theo yêu cầu.
Client và server giao tiếp với nhau bằng cách trao đổi các tin nhắn riêng lẽ. Nghĩa là các tin nhắn được gửi từ client, thông thường là trên trình duyệt web được gọi là request và các tin nhắn từ server gửi về client được gọi là response chứa các dữ liệu cần thiết mà request yêu cầu.
Được thiết kế vào đầu những năm 1990, HTTP là một protocol phát triển theo thời gian. Nó là một giao thức được gửi qua TCP hoặc qua kết nối TCP được mã hóa bằng TLS.
Do khả năng mở rộng của nó, nó được sử dụng để không chỉ tìm nạp tài liệu siêu văn bản mà còn cả hình ảnh và video hoặc đăng nội dung lên các server.
HTTP request là gì?
Như đã đề cập ở trên, HTTP request là một cách để các nền tảng truyền thông internet như trình duyệt web yêu cầu thông tin cần thiết để tải một trang web.
Mỗi HTTP request được thực hiện trên Internet đều mang theo một loạt dữ liệu được mã hóa mang các loại thông tin khác nhau. Một HTTP request điển hình bao gồm:
- HTTP version type
- URL
- HTTP method
- HTTP request headers
- Optional HTTP body.
Để hiểu rõ hơn, chúng ta sẽ đi qua một số phần quan trọng trong cấu trúc này.
HTTP Method là gì?
Một HTTP method được hiểu như là một hành động mà HTTP request sẽ thực hiện trên các máy chủ. Ví dụ nếu HTTP method là “GET” nghĩa là nó đang muốn lấy một danh sách các tài nguyên từ máy chủ, hay HTTP method là “POST” thường chỉ ra rằng client đang muốn gửi một thông tin gì đó đến server chẳng hạn như user/password để đăng nhập.
HTTP request header là gì?
HTTP header chứa các thông tin dạng văn bảng được lưu trữ thành một cặp key-value, và chúng luôn được gửi đính kèm trong mọi HTTP request. Các header chứa các thông tin cơ bản trong việc giao tiếp giữa client và server, chẳng hạn như thông tin về trình duyệt mà người dùng đang sử dụng, HTTP method, v.v.
Ví dụ như một HTTP request header từ Google Chrome
HTTP request body là gì?
Request body cũng là một nơi chứa các thông tin của request dùng để chuyển đến các server. Nội dung của một HTTP body có thể chứa bất kỳ thông tin nào, chẳng hạn như tên người dùng và mật khẩu, hình ảnh, v.v.
HTTP response là gì?
HTTP response là những gì web client (thông thường là trình duyệt web) nhận được từ web server để trả lời một HTTP request. Một HTTP response chứa các thông tin sau:
- HTTP status code
- HTTP response header
- HTTP body
HTTP status code là gì?
HTTP status code là một mã trạng thái gồm 3 chữ số thường được dùng để chỉ ra trạng thái thực thi của server dựa trên các HTTP request được hoàn thành hay chưa hoặc có lỗi gì trong quá trình thực thi.
HTTP status code được chia thành 5 loại:
- 1xx Informational
- 2xx Success
- 3xx Redirection
- 4xx Client Error
- 5xx Server Error
Các ký tự xx đại diện cho các chữ số trong khoảng 00 đến 99.
Status bắt đầu bởi số 2 chỉ ra rằng việc thực thi thành công. Cho ví dụ sau khi client gửi HTTP request để mở một trang web, thì web server trả về mã 200 chỉ ra rằng request thành công và trình duyệt có thể sử dụng các thông tin từ HTTP response để khởi dựng một trang web hoàn chỉnh.
Nếu mã lỗi bắt đầu bằng 4XX thì đã xảy ra lỗi ở phía client, có thể là chúng ta đang nhập thông tin user/pass login sai chẳng hạn thì mã lỗi trong trường hợp này là 400. Hoặc 404 nghĩa là chúng ta đang truy cập vào một trang web không tồn tại.
HTTP response header là gì?
Gần giống như HTTP request header, một HTTP response đính kèm header chứa các thông tin giao tiếp cơ bản như ngôn ngữ, định dạng của response body, status code.
HTTP response body là gì?
Các phản hồi HTTP thành công cho các yêu cầu ‘GET’ thường có phần nội dung chứa thông tin được yêu cầu. Trong hầu hết cá web request, đây là dữ liệu HTML mà trình duyệt web sẽ dịch thành một trang web.
Kết bài
Ok, vậy là chúng ta đã tìm hiểu được kha khá khái niệm về HTTP request. Nhiều khi chúng ta làm việc rất nhiều với HTTP response hằng như không máy khi để ý đến những khái niệm cơ bản của nó. Hy vọng bài viết sẽ giúp ích cho mọi người có một cái nhìn khái quát hơn về HTTP.
Nguồn
https://www.cloudflare.com/learning/ddos/glossary/hypertext-transfer-protocol-http/