1. JSON là gì?

JSON là một định dạng dữ liệu được sử dụng rất phổ biến trong lập trình, đặc biệt là khi Client và Server cần trao đổi dữ liệu với nhau.

JSON có cách tổ chức dữ liệu khá đơn giản và dễ đọc. Dữ liệu thường được biểu diễn theo dạng Key – Value, trong đó Key là tên của dữ liệu và Value là giá trị tương ứng.

Ví dụ một thông tin người dùng có thể bao gồm tên, tuổi, email, địa chỉ hoặc trạng thái tài khoản. Những thông tin này có thể được đóng gói thành JSON rồi gửi từ Client lên Server hoặc từ Server trả về Client.

Hiểu đơn giản:

JSON là định dạng giúp các hệ thống trao đổi dữ liệu với nhau.

JSON được sử dụng rất nhiều trong REST API, Web Application, Mobile Application và các hệ thống Backend.

HTTP Status Codes

2. JSON được sử dụng ở đâu?

JSON thường xuất hiện khi làm việc với API.

Ví dụ khi người dùng đăng ký tài khoản, ứng dụng sẽ lấy các thông tin như tên, email và mật khẩu rồi gửi lên Server. Những dữ liệu này có thể được đóng gói dưới dạng JSON để Server nhận và xử lý.

Ngược lại, khi Server xử lý xong, Server cũng có thể trả dữ liệu về cho Client dưới dạng JSON.

Ví dụ khi ứng dụng yêu cầu danh sách sản phẩm, Server có thể trả về thông tin của nhiều sản phẩm bao gồm tên sản phẩm, giá, hình ảnh, mã sản phẩm và số lượng.

Vì JSON có cấu trúc rõ ràng và dễ xử lý nên hầu hết các ngôn ngữ lập trình hiện nay đều có thể làm việc với JSON.

3. Một số kiểu dữ liệu trong JSON

JSON hỗ trợ nhiều kiểu dữ liệu cơ bản để có thể biểu diễn các thông tin khác nhau.

Một số kiểu thường gặp:

  • String: Dùng để lưu chuỗi ký tự như tên hoặc email.
  • Number: Dùng để lưu số như tuổi, giá sản phẩm hoặc số lượng.
  • Boolean: Chỉ có hai giá trị là true hoặc false, thường dùng để biểu diễn trạng thái.
  • Object: Dùng để nhóm nhiều thông tin liên quan lại với nhau.
  • Array: Dùng để lưu một danh sách nhiều giá trị hoặc nhiều đối tượng.
  • null: Dùng khi một dữ liệu không có giá trị.

Trong thực tế, JSON có thể chứa nhiều Object và Array lồng nhau, vì vậy nó có thể biểu diễn được những dữ liệu tương đối phức tạp.

4. HTTP Status Code là gì?

HTTP Status Code là mã trạng thái được Server trả về sau khi nhận và xử lý một HTTP Request.

Mục đích của Status Code là giúp Client biết Request đã được xử lý thành công hay xảy ra vấn đề.

Ví dụ khi Client gửi yêu cầu lấy danh sách người dùng và Server xử lý thành công, Server có thể trả về 200 OK.

Nếu Client yêu cầu một tài nguyên không tồn tại thì Server có thể trả về 404 Not Found.

HTTP Status Code được chia thành 5 nhóm chính:

  • 1xx là Thông tin.
  • 2xx là Request thành công.
  • 3xx là Chuyển hướng.
  • 4xx là Lỗi liên quan đến Request hoặc Client.
  • 5xx là Lỗi xảy ra phía Server.

5. Các HTTP Status Code thường gặp

Trong quá trình làm Web và REST API, một số Status Code thường gặp là:

  • 200 OK là Request được xử lý thành công.
  • 201 Created là Tạo dữ liệu mới thành công.
  • 204 No Content là Request thành công nhưng không có dữ liệu trả về.
  • 301 Moved Permanently là Tài nguyên đã được chuyển sang địa chỉ khác.
  • 400 Bad Request là Request được gửi lên không hợp lệ.
  • 401 Unauthorized là Người dùng chưa đăng nhập hoặc thông tin xác thực không hợp lệ.
  • 403 Forbidden là Người dùng đã được xác thực nhưng không có quyền thực hiện hành động.
  • 404 Not Found là Không tìm thấy tài nguyên được yêu cầu.
  • 405 Method Not Allowed là HTTP Method được sử dụng không được Server cho phép.
  • 500 Internal Server Error là Server gặp lỗi trong quá trình xử lý.
  • 502 Bad Gateway là Server trung gian nhận được phản hồi không hợp lệ từ Server khác.
  • 503 Service Unavailable là Server hiện tại không thể xử lý Request, có thể do quá tải hoặc đang bảo trì.Medium

6. JSON kết hợp với HTTP Status Code

Trong REST API, JSON và HTTP Status Code thường được sử dụng cùng nhau.

HTTP Status Code cho biết kết quả tổng quát của Request, còn JSON có thể chứa thông tin chi tiết hơn về kết quả đó.

Ví dụ khi người dùng đăng nhập đúng tài khoản và mật khẩu, Server có thể trả về 200 OK và thông tin liên quan đến tài khoản hoặc Token đăng nhập.

Nếu người dùng nhập sai email hoặc mật khẩu, Server có thể trả về 401 Unauthorized để cho Client biết thông tin xác thực không hợp lệ. Client dựa vào Status Code này để biết rằng việc đăng nhập thất bại và có thể hiển thị thông báo phù hợp cho người dùng.

Tương tự, nếu người dùng yêu cầu một sản phẩm không tồn tại, Server có thể trả về 404 Not Found. Ứng dụng nhận được mã này sẽ biết rằng dữ liệu cần tìm không tồn tại và có thể thông báo cho người dùng.

Như vậy, Status Code giúp xác định trạng thái, còn JSON giúp truyền nội dung dữ liệu hoặc thông báo chi tiết.

7. Tóm lại

Có thể hiểu đơn giản:

JSON là định dạng dùng để truyền và trao đổi dữ liệu giữa Client và Server.

HTTP Status Code là mã cho biết kết quả xử lý Request.

Khi làm việc với REST API, hai thành phần này thường đi cùng nhau. Client gửi Request đến Server, Server xử lý rồi trả Response. Trong Response sẽ có Status Code để cho biết Request thành công hay thất bại, đồng thời có thể có dữ liệu được trả về dưới dạng JSON.

 Đơn giản :

JSON Dùng để truyền dữ liệu.

Status Code Dùng để báo trạng thái.

2xx là Thành công.

3xx là Chuyển hướng.

4xx là Lỗi từ Request/Client.

5xx là Lỗi từ Server.

Các thuật ngữ liên quan cần nhớ: JSON, Key, Value, Object, Array, Request, Response, HTTP Status Code, REST API, Client, Server, HTTP Method, 2xx, 3xx, 4xx, 5xx.

Bài viết khác

Test Automation(Kiểm thử tự động)

1.Test Automation (Kiểm thử tự động) là gì? Trong các dự án phát triển phần mềm truyền thống trước đây, toàn bộ quy trình kiểm thử (Testing) đều được thực hiện thủ công (Manual Testing) bởi con người. Các kiểm thử viên trực tiếp thao tác trên giao diện, nhập dữ liệu, kiểm tra kết […]

Logging – Monitoring – CI/CD

Logging, Monitoring và CI/CD là gì? Vai trò trong phát triển Backend 1. Tổng quan Khi xây dựng một ứng dụng Backend, viết code và chạy được chương trình mới chỉ là bước đầu. Khi ứng dụng được đưa vào sử dụng, lập trình viên còn cần biết ứng dụng đang hoạt động như thế […]

Redis & Caching là gì?

Redis & Caching là gì? Hướng dẫn sử dụng Redis trong Go 1. Caching là gì? Vì sao cần cache khi đã có database? Caching (bộ nhớ đệm) là kỹ thuật lưu tạm dữ liệu thường được truy cập để có thể lấy lại nhanh chóng khi cần, thay vì phải thực hiện lại toàn […]

Background Jobs & Queues

1. Background Jobs & Queues là gì? Trong một ứng dụng backend, không phải công việc nào cũng cần hoàn thành ngay trong lúc xử lý HTTP request. Ví dụ, khi người dùng đăng ký tài khoản, hệ thống có thể cần: Lưu thông tin người dùng vào database. Gửi email xác nhận. Gửi thông […]

Saga Pattern

Saga Pattern là gì? Quản lý Transaction trong kiến trúc Microservices 1. Saga Pattern là gì? Saga Pattern là một mẫu thiết kế được sử dụng để quản lý các nghiệp vụ phân tán gồm nhiều bước xử lý, trong đó mỗi bước có thể thực hiện một local transaction tại một service hoặc Database […]

Two-Phase Locking (2PL)

Two-Phase Locking (2PL) là gì? Cơ chế khóa hai pha trong Database 1. Two-Phase Locking (2PL) là gì? Two-Phase Locking (2PL — khóa hai pha) là một giao thức quản lý khóa trong Database, quy định cách một transaction được phép lấy và giải phóng lock trong quá trình thực thi. Khi nhiều transaction cùng […]

Leave a Reply

Your email address will not be published. Required fields are marked *