API và HTTP - Một số khái niệm cơ bản cần biết về Web (Phần 2)

                   Một số khái niệm cơ bản cần biết về Web 

                                    (Phần 2: API và HTTP)

Trong phần 2, mình sẽ giải thích các khái niệm, thuật ngữ thường hay sử dụng trong lập trình Website. Từ phần này nội dung kiến thức sẽ không phù hợp với các bạn mới, chưa biết gì. Nội dung này chỉ dành cho ai đang trong quá trình học về lập trình Web. Cùng bắt đầu nào.


API là gì?
API là viết tắt của Application Programming Interface.

Bạn đã đến nhà hàng bao giờ chưa? Khi bạn gọi món, bạn đưa ra một yêu cầu "request" tới người nhân viên phục vụ. Người nhân viên này sau đó xuống khu vực bếp "backend" yêu cầu hoàn tất "request" từ khách hàng. Sau khi xử lý xong "request", món ăn được nhân viên phản hồi "response" đến khách hàng yêu cầu.


Ví dụ về API

Như vậy, người nhân viên này chính là API của nhà hàng.

API trong Website cũng tương tự vậy. Các yêu cầu truy cập trang Web của bạn (ở Phần 1) cũng đều phải thông qua API và trả về nội dung. Các API mà người dùng tương tác được thường được gọi là external API.
Tuy nhiên, chính trong server cũng sẽ có các internal API mà người dùng bên ngoài không thể liên lạc được.
Và cũng không phải tất cả các API đều trả về một trang Web. "Trang Web" chỉ là một trong nhiều dạng dữ liệu mà thôi. API có thể chỉ trả về đoạn văn bản, hình ảnh, âm thanh, hoặc cũng có thể chỉ là một giá trị kiểu int, boolean, double,...
API cũng được xem như là "cầu nối" giữa các ứng dụng với nhau. Chẳng hạn như các Website sử dụng đăng nhập bằng Facebook hoặc Google, thì Website đó sẽ "tương tác" với các trang lớn đó thông qua API của họ.

Hiểu đơn giản nhất: API xem như là cổng giao tiếp của server với các thành phần bên ngoài.
 


HTTP là gì?

HTTP là viết tắt của Hypertext Transfer Protocol.
Nếu bạn đã từng học lập trình mạng, thì chắc cũng từng nghe qua về TCP và UDP rồi nhỉ.
Về cơ bản, đó là giao thức truyền dữ liệu mạng. Giao thức ở đây có thể hiểu là "ngôn ngữ". Đúng vậy, máy tính giao tiếp nhau cần phải thống nhất với nhau về quy tắc (tạm hiểu là cùng chung ngôn ngữ). Thì TCP và UDP chính là một dạng quy tắc (giao thức) để truyền dữ liệu mạng


Cách đóng gói truyền dữ liệu theo giao thức UDP

HTTP cũng chính là một dạng giao thức. Đây là dạng giao thức được sử dụng phổ biến ở Web. Với request có dạng như sau.



Cách truyền dữ liệu theo giao thức HTTP

Verb ở đây là hành động thực hiện. Có 4 hành động chính:

Các lệnh trong HTTP

Tương ứng với 4 thao tác cơ bản trong việc tạo và lưu trữ dữ liệu CRUD.

Đối với response sẽ có dạng như sau



Dạng response trong giao thức HTTP

Response sẽ trả về HTTP status code + data tương ứng. Các loại HTTP status code có thể kể đến như:

2xx: Thành công

4xx: Lỗi liên quan đến request (client)

5xx: Lỗi liên quan đến response (server)

Trong đó nổi tiếng nhất với 4xx các bạn có thể biết là lỗi 404: Page Not Found.

Hiểu đơn giản nhất: HTTP là giao thức thường dùng trong Web để hai máy tính có thể hiểu nhau trong việc trao đổi thông tin mạng.


Kết luận: API và HTTP là hai khái niệm cơ bản cần biết khi bắt đầu tiếp xúc với lập trình Web. Hi vọng các bạn có thể hiểu rõ hơn thông qua bài viết này của mình. Cảm ơn đã đón đọc :>

Nội dung bài viết thuộc về Lê Công Diễn.

 

Người viết: Lê Công Diễn

Mang đi nhớ ghi nguồn





Nhận xét

Bài đăng phổ biến từ blog này

Deploy project Springboot MIỄN PHÍ sử dụng Render

Ứng dụng Mã hóa bất đối xứng (Asymmetric cryptography) vào Chữ ký số (Digital Signature)