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

Tìm hiểu về Flutter Widget Fundamentals

  Widget trong Flutter là gì? Widget là thành phần cơ bản nhất được sử dụng để xây dựng giao diện trong Flutter. Mỗi thành phần trên màn hình như văn bản, hình ảnh, nút bấm, danh sách, khoảng cách hoặc toàn bộ một màn hình đều có thể được biểu diễn bằng Widget. Thay […]

Tìm hiểu về Isolate & Concurrency

  Isolate là gì? Trong Dart, Isolate là một vùng thực thi độc lập, có bộ nhớ riêng và Event Loop riêng. Mỗi Isolate có thể thực hiện công việc mà không trực tiếp chia sẻ bộ nhớ với Isolate khác. Có thể hiểu đơn giản: Isolate là cách Dart thực hiện các tác vụ […]

Lập trình bất đồng bộ với Future, async, await.

  Lập trình bất đồng bộ là gì? Lập trình bất đồng bộ (Asynchronous Programming) là cách tổ chức chương trình cho phép một tác vụ mất thời gian được thực hiện mà không cần chặn toàn bộ chương trình trong thời gian chờ. Trong ứng dụng thực tế, có nhiều công việc cần thời […]

Tìm hiểu về Null Safety

  Null Safety là gì? Null Safety là một cơ chế an toàn kiểu dữ liệu được Dart sử dụng để hạn chế các lỗi liên quan đến giá trị null trong chương trình. Null Safety được đưa vào Dart nhằm giúp lập trình viên xác định rõ một biến có thể chứa null hay […]

TÌM HIỂU VỀ DART OO

  Dart OOP là gì? Dart OOP là lập trình hướng đối tượng (Object-Oriented Programming) trong ngôn ngữ Dart. Đây là phương pháp lập trình tổ chức chương trình xoay quanh đối tượng (Object) thay vì chỉ sử dụng các biến và hàm riêng lẻ. Trong OOP, một đối tượng thường có dữ liệu và […]

Tìm hiểu về ngôn ngữ lập trình Dart

  Dart là gì? Dart là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google, được sử dụng để xây dựng các ứng dụng có thể chạy trên nhiều nền tảng khác nhau. Hiện nay, Dart được biết đến nhiều nhất vì đây là ngôn ngữ lập trình chính được sử […]

Leave a Reply

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