Nền tảng Kiến thức - Hành trang tới Tương lai
Card image

Chương 3-Bài 2. Tiêu chuẩn mã lỗi khi giao tiếp giữa Client và Server trên nền web - HTTP Status Code

Tác giả: Dương Nguyễn Phú Cường #12077
Ngày đăng: 1 tháng trước
Lượt xem: 99

Tiêu chuẩn mã lỗi khi giao tiếp giữa Client và Server trên nền web - HTTP Status Code

Giữa Client và Server giao tiếp thông qua các giao tiếp Request và Response.

Khi gởi Request và Response có thể trả về các trạng thái mã lỗi theo tiêu chuẩn quy định như sau:

Danh sách mã lỗi HTTP Status Code

HTTP status code gồm 3 chữ số, được chia thành 5 loại khác nhau, mỗi loại bắt đầu với 1 chữ số khác nhau và mang ý nghĩa riêng:

  • 1xx (Informational – Thông tin): Các status code loại này dùng để đơn giản thông báo với client rằng server đã nhận được request. Các status code này ít được sử dụng.
  • 2xx (Sucess – Thành công): Các status code loại này có ý nghĩa rằng request được server và xử lý thành công.
  • 3xx (Redirect – Chuyển hướng): Các status code loại này có ý nghĩa rằng server sẽ chuyển tiếp request hiện tại sang một request khác và client cần thực hiện việc gửi request tiếp theo đó để có thể hoàn tất. Thông thường khi trình duyệt nhận được status code loại này nó sẽ tự động thực hiện việc gửi request tiếp theo để lấy về kết quả.
  • 4xx (Client error – Lỗi Client): Các status code loại này có ý nghĩa rằng đã có lỗi từ phía client trong khi gửi request. Ví dụ như sai URL, sai HTTP method, không có quyền truy cập vào trang…
  • 5xx (Server error – Lỗi Server): Các status code loại này có ý nghĩa rằng đã có lỗi từ phía server trong khi xử lý request. Ví dụ như server quá tải, hết bộ nhớ, lỗi kết nối database…

1xx (Informational – Thông tin)

  • 100 Continue: Chỉ một phần của Request được nhận bởi Server (có thể là header và Client cần gửi tiếp body), nhưng miễn là nó không bị loại bỏ, Client nên tiếp tục với Request.
  • 101 Switching Protocols: Server thay đổi protocol

2xx (Sucess – Thành công)

  • 200 OK: Request đã được tiếp nhận và xử lý thành công.
  • 201 Created: Request đã được tiếp nhận và xử lý thành công và 1 tài nguyên mới được tạo trên server.
  • 202 Accepted: Request được chấp nhận xử lý nhưng việc sử lý không hoàn thành
  • 203 Non-autoriative Infomation:
  • 204 No content: Request được xử lý thành công nhưng server không trả về dữ liệu nào.
  • 205 Reset content: Giống với 205 nhưng yêu cầu phía client phải thiết lập lại document view.
  • 206 Partial Content: Server chỉ trả về một phần dữ liệu.

3xx (Redirect – Chuyển hướng)

  • 300 Multiple Choices: Một danh sách các link. Người sử dụng có thể chọn một link và tới vị trí đó. Có tối đa 5 địa chỉ. Ví dụ: List các file video với format khác nhau
  • 301 Moved Permanently: Request hiện tại và các request sau được yêu cầu di chuyển tới một URI mới.
  • 302 Found: Trang được yêu cầu đã được di chuyển tới vị trí mới.
  • 303 See Other: Trang được yêu cầu cũng có thể được tả về ở một URL khác bằng cách sử dụng phương thức GET.
  • 304 Not Modified:
  • 305 Use Proxy:
  • 306 Switch Proxy:
  • 307 Temporary Redirect:

4xx: (Client Error – Lỗi Client)

  • 400 Bad Request: Server không thể xử lý hoặc sẽ không xử lý các Request lỗi của phía client (ví dụ Request có cú pháp sai)
  • 401 Unauthorized: Cần username, password để truy cập
  • 402 Payment Required: Mã này chưa được định nghĩa.
  • 403 Forbidden: Truy cập bị từ chối (ví dụ ip bị chặn)
  • 404 Not Found: Trang được yêu cầu không tồn tại tại thời điểm hiện tại, tuy nhiên có thể tồn tại trong tương lai.
  • 405 Method Not Allowed: Trang được yêu cầu không hỗ trợ method của request (ví dụ chỉ xử lý method POST, không xử lý method GET)
  • 406 Not Acceptable: Server chỉ có thể tạo một Response mà không được chấp nhận bởi Client.
  • 407 Proxy Authentication Required: Bạn phải xác nhận với một proxy server trước khi request này được phục vụ.
  • 408 Request Timeout: Request tốn thời gian dài hơn thời gian Server được chuẩn bị để đợi.
  • 409 Conflict: Request không thể được hoàn thành bởi vì sự xung đột
  • 410 Gone: Giống 404 nhưng tài nguyên/trang cũng không tồn tại trong tương lai
  • 411 Length Required: Chưa định nghĩa trường “Content-Length” trong header của request gửi đi.
  • 412 Precondition Failed: Server sẽ không đáp ứng một trong những điều kiện tiên quyết của Client trong Request.
  • 413 Payload Too Large: Server sẽ không chấp nhận yêu cầu, bởi vì đối tượng yêu cầu là quá rộng.
  • 414 URI Too Long: URI được cung cấp là quá dài để Server xử lý.
  • 415 Unsupported Media Type: Server sẽ không chấp nhận Request, bởi vì kiểu phương tiện không được hỗ trợ.
  • 416 Range Not Satisfiable: Client yêu cầu một phần dữ liệu nhưng không có sẵn trên server.
  • 417 Expectation Failed:

5xx (Server error – Lỗi server)

  • 500 Internal Server Error: Một thông báo chung chung, được đưa ra khi Server bị lỗi bất ngờ (chủ yếu do lỗi lập trình, kết nối database)
  • 501 Not Implemented: Server không hỗ trợ xử lý request này.
  • 502 Bad Gateway: Server đã hoạt động như một gateway hoặc proxy và nhận được một Response không hợp lệ từ máy chủ nguồn.
  • 503 Service Unavailable: Server hiện tại không có sẵn (Quá tải hoặc được down để bảo trì). Nói chung đây chỉ là trạng thái tạm thời.
  • 504 Gateway Timeout: Server đã hoạt động như một gateway hoặc proxy và không nhận được một Response từ máy chủ nguồn.
  • 505 HTTP Version Not Supported: Server không hỗ trợ phiên bản “giao thức HTTP”.

Chương trình học


  1. Bức tranh tổng thể về Lập trình WEB 1
    1. Sơ đồ vận hành của một Website Java Spring #12095
  2. Cài đặt, setup môi trường lập trình Java Spring 4
    1. Cài đặt Postman #12064
    2. Cài đặt tool Lombok #11611
    3. Cài đặt web server XAMPP #84
    4. Cài đặt công cụ truy vấn database HeidiSQL #1833
  3. Tiêu chuẩn lập trình WEB 8
    1. Chuẩn dữ liệu JSON #12067
    2. Tiêu chuẩn mã lỗi khi giao tiếp giữa Client và Server trên nền web - HTTP Status Code #12077
    3. Tiêu chuẩn RESTful API là gì? #12066
    4. Kiến trúc MVC là gì? #65
    5. Mô hình kiến trúc MVC vận hành trong Java Spring Framework #12108
    6. Mô hình kiến trúc 3 lớp (Three layers) vận hành trong Java Spring MVC Framework #12118
    7. Mô hình Kiến trúc 3 lớp (three layers) phân chia DTO thành REQUEST / RESPONSE theo từng ngữ cảnh vận hành trong Java Spring MVC Framework #12261
    8. Mô hình kiến trúc 3 lớp (three layers) có kiểm tra ràng buộc dữ liệu (validation) vận hành trong Java Spring MVC Framework #12240
  4. Tổng quan về framework Spring Java 2
    1. Giới thiệu về Spring #12065
    2. Tạo chương trình Java Spring đầu tiên - Hello World #12090
  5. Phân tích nghiệp vụ, phân rã danh sách chức năng và thiết kế database 2
    1. Thiết kế Cơ sở dữ liệu Bán hàng TMĐT có quản lý Kho hàng, Nhập xuất, Tồn kho, Phân quyền, Khuyến mãi, Tin tức #12053
    2. Phân rã danh sách chức năng Web app TMĐT có quản lý Kho hàng, Nhập xuất, Tồn kho, Phân quyền, Khuyến mãi, Tin tức #12058
  6. Video khóa học 1
    1. Playlist khóa học Java Spring Framework trên Youtube #12114
  7. Dự án thực tế mẫu - Trang web app bán hàng có quản lý kho hàng NetaShop - Phân vùng giao diện Quản trị Admin 26
    1. Thiết kế bố cục (layouts) cho phân vùng giao diện Quản trị Admin (Backend) #12124
    2. Thiết kế giao diện trang tổng quan (Dashboard) cho phân vùng giao diện Quản trị Admin (Backend) #12127
    3. Thiết kế giao diện trang danh sách chuyên mục sản phẩm (Shop categories - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12130
    4. Thiết kế giao diện trang thêm mới chuyên mục sản phẩm (Shop categories - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12133
    5. Thiết kế giao diện trang cập nhật chuyên mục sản phẩm (Shop categories - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12137
    6. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa chuyên mục sản phẩm (Shop categories - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12134
    7. Thiết kế giao diện trang danh sách nhà cung cấp (Shop suppliers - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12142
    8. Thiết kế giao diện trang thêm mới nhà cung cấp (Shop suppliers - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12147
    9. Thiết kế giao diện trang cập nhật nhà cung cấp (Shop suppliers - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12148
    10. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa nhà cung cấp (Shop suppliers - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12149
    11. Thiết kế giao diện trang danh sách sản phẩm (Shop products - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12156
    12. Thiết kế giao diện trang thêm mới sản phẩm (Shop products - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12157
    13. Thiết kế giao diện trang cập nhật sản phẩm (Shop products - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12158
    14. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa sản phẩm (Shop products - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12159
    15. Thiết kế giao diện trang danh sách sản phẩm khuyến mãi, giảm giá (Shop product discounts - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12180
    16. Thiết kế giao diện trang thêm mới sản phẩm khuyến mãi, giảm giá (Shop product discounts - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12181
    17. Thiết kế giao diện trang cập nhật sản phẩm khuyến mãi, giảm giá (Shop product discounts - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12182
    18. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa sản phẩm khuyến mãi, giảm giá (Shop product discounts - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12183
    19. Thiết kế giao diện trang danh sách kho hàng (Shop stores - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12184
    20. Thiết kế giao diện trang thêm mới kho hàng (Shop stores - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12185
    21. Thiết kế giao diện trang cập nhật kho hàng (Shop stores - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12186
    22. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa kho hàng (Shop stores - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12187
    23. Thiết kế giao diện trang danh sách phiếu nhập kho (Shop imports - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12188
    24. Thiết kế giao diện trang thêm mới phiếu nhập kho (Shop imports - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12189
    25. Thiết kế giao diện trang cập nhật phiếu nhập kho (Shop imports - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12190
    26. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa phiếu nhập kho (Shop imports - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12191
Các bài học

Chương trình học

Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...

Chương trình học


  1. Bức tranh tổng thể về Lập trình WEB 1
    1. Sơ đồ vận hành của một Website Java Spring #12095
  2. Cài đặt, setup môi trường lập trình Java Spring 4
    1. Cài đặt Postman #12064
    2. Cài đặt tool Lombok #11611
    3. Cài đặt web server XAMPP #84
    4. Cài đặt công cụ truy vấn database HeidiSQL #1833
  3. Tiêu chuẩn lập trình WEB 8
    1. Chuẩn dữ liệu JSON #12067
    2. Tiêu chuẩn mã lỗi khi giao tiếp giữa Client và Server trên nền web - HTTP Status Code #12077
    3. Tiêu chuẩn RESTful API là gì? #12066
    4. Kiến trúc MVC là gì? #65
    5. Mô hình kiến trúc MVC vận hành trong Java Spring Framework #12108
    6. Mô hình kiến trúc 3 lớp (Three layers) vận hành trong Java Spring MVC Framework #12118
    7. Mô hình Kiến trúc 3 lớp (three layers) phân chia DTO thành REQUEST / RESPONSE theo từng ngữ cảnh vận hành trong Java Spring MVC Framework #12261
    8. Mô hình kiến trúc 3 lớp (three layers) có kiểm tra ràng buộc dữ liệu (validation) vận hành trong Java Spring MVC Framework #12240
  4. Tổng quan về framework Spring Java 2
    1. Giới thiệu về Spring #12065
    2. Tạo chương trình Java Spring đầu tiên - Hello World #12090
  5. Phân tích nghiệp vụ, phân rã danh sách chức năng và thiết kế database 2
    1. Thiết kế Cơ sở dữ liệu Bán hàng TMĐT có quản lý Kho hàng, Nhập xuất, Tồn kho, Phân quyền, Khuyến mãi, Tin tức #12053
    2. Phân rã danh sách chức năng Web app TMĐT có quản lý Kho hàng, Nhập xuất, Tồn kho, Phân quyền, Khuyến mãi, Tin tức #12058
  6. Video khóa học 1
    1. Playlist khóa học Java Spring Framework trên Youtube #12114
  7. Dự án thực tế mẫu - Trang web app bán hàng có quản lý kho hàng NetaShop - Phân vùng giao diện Quản trị Admin 26
    1. Thiết kế bố cục (layouts) cho phân vùng giao diện Quản trị Admin (Backend) #12124
    2. Thiết kế giao diện trang tổng quan (Dashboard) cho phân vùng giao diện Quản trị Admin (Backend) #12127
    3. Thiết kế giao diện trang danh sách chuyên mục sản phẩm (Shop categories - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12130
    4. Thiết kế giao diện trang thêm mới chuyên mục sản phẩm (Shop categories - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12133
    5. Thiết kế giao diện trang cập nhật chuyên mục sản phẩm (Shop categories - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12137
    6. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa chuyên mục sản phẩm (Shop categories - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12134
    7. Thiết kế giao diện trang danh sách nhà cung cấp (Shop suppliers - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12142
    8. Thiết kế giao diện trang thêm mới nhà cung cấp (Shop suppliers - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12147
    9. Thiết kế giao diện trang cập nhật nhà cung cấp (Shop suppliers - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12148
    10. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa nhà cung cấp (Shop suppliers - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12149
    11. Thiết kế giao diện trang danh sách sản phẩm (Shop products - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12156
    12. Thiết kế giao diện trang thêm mới sản phẩm (Shop products - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12157
    13. Thiết kế giao diện trang cập nhật sản phẩm (Shop products - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12158
    14. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa sản phẩm (Shop products - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12159
    15. Thiết kế giao diện trang danh sách sản phẩm khuyến mãi, giảm giá (Shop product discounts - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12180
    16. Thiết kế giao diện trang thêm mới sản phẩm khuyến mãi, giảm giá (Shop product discounts - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12181
    17. Thiết kế giao diện trang cập nhật sản phẩm khuyến mãi, giảm giá (Shop product discounts - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12182
    18. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa sản phẩm khuyến mãi, giảm giá (Shop product discounts - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12183
    19. Thiết kế giao diện trang danh sách kho hàng (Shop stores - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12184
    20. Thiết kế giao diện trang thêm mới kho hàng (Shop stores - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12185
    21. Thiết kế giao diện trang cập nhật kho hàng (Shop stores - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12186
    22. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa kho hàng (Shop stores - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12187
    23. Thiết kế giao diện trang danh sách phiếu nhập kho (Shop imports - INDEX) cho phân vùng giao diện Quản trị Admin (Backend) #12188
    24. Thiết kế giao diện trang thêm mới phiếu nhập kho (Shop imports - CREATE) cho phân vùng giao diện Quản trị Admin (Backend) #12189
    25. Thiết kế giao diện trang cập nhật phiếu nhập kho (Shop imports - EDIT) cho phân vùng giao diện Quản trị Admin (Backend) #12190
    26. Thiết kế giao diện trang hiển thị hộp thoại (dialog) cảnh báo xóa phiếu nhập kho (Shop imports - DELETE) cho phân vùng giao diện Quản trị Admin (Backend) #12191

Bài học trước Bài học tiếp theo