Network request trong JS

10-10-24 Admin
-

HTTP là gì?

Theo wikipedia: HTTP - viết tắt của HyperText Transfer Protocol - giao thức truyền tải siêu văn bản, là một trong năm chuẩn về mạng Internet, được dùng để liên hệ thông tin giữa máy cung cấp dịch vụ (Web server) và máy sử dụng dịch vụ (Web client). HTTP là một giao thức sử dụng bộ giao thức TCP/IP.

Các phương thức request của HTTP
HTTP hỗ trợ các phương thức request sau:

GET: phương thức này dùng để lấy thông tin từ server sử dụng URI. Và phương thức GET chỉ nên dùng để lấy thông tin mà không có ảnh hưởng khác tới dữ liệu.
HEAD: tương tự như GET, nhưng phương thức này chỉ dùng để lấy thông tin dòng trạng thái và phần tiêu đề (header).
POST: phương thức này dùng để gửi dữ liệu từ client lên server, ví dụ: thông tin khách hàng, file,...
PUT: dùng để thay thế dữ liệu hiện tại trên server bằng một dữ liệu mới được tải lên. Nói ngắn gọn thì là upload dữ liệu.
DELETE: xoá dữ liệu trên server sử dụng URI.
CONNECT: thiết lập một kênh truyền đến server sử dụng URI.
OPTIONS: miêu tả các tuỳ chọn giao tiếp đến tài nguyên trên server.
TRACE: thực hiện một bài test lặp lại vòng lặp thông báo với đường dẫn đến tài nguyên đích trên server.

Các status code

Status-code là một số nguyên gồm 3 chữ số, dùng để phân loại phản hồi được gửi về từ server. Có 5 loại status-code là:

1xx: (100, 101) : Nó có nghĩa là yêu cầu đã được chấp nhận và tiến trình sẽ được tiếp tục.
2xx: (200 - 206) : Nó có nghĩa là hành động đã được nhận, hiểu và thực hiện thành công.
3xx: (300 - 307) : Nó có nghĩa là phải thực hiện thêm hành động để hoàn thành yêu cầu.
4xx: (400 - 417 ) : Nó có nghĩa là yêu cầu bị sai cú pháp hay là không thể được hoàn thành.
5xx: (500 - 505) : Nó có nghĩa là server không thể thực hiện được yêu cầu.

Gửi HTTP request sử dụng XMLHttpRequest

const req = new XMLHttpRequest();
req.open("GET", "https://httpbin.org/get", false);
req.send(null);
console.log(req.status);
console.log(req.responseText);

Bất đồng bộ:

const req = new XMLHttpRequest();
req.open("GET", "https://httpbin.org/get", true);
req.addEventListener("load", function () {
  console.log(req.status);
  console.log(req.responseText);
});
req.send(null);
console.log("Sent");

Bắt lỗi error:

const req = new XMLHttpRequest();
req.open("GET", "https://httpbin.org/get", true);
req.addEventListener("load", function () {
  console.log(req.status);
  console.log(req.responseText);
});
req.addEventListener("error", function () {
  console.log("Error occurred!");
});
req.send(null);
console.log("Sent");

Triển khai XMLHttpRequest với Promise

function get(requestURL) {
  return new Promise(function (resolve, reject) {
    let XMLHttpRequest =
      window.XMLHttpRequest || ActiveXObject("Microsoft.XMLHTTP");
    let req = new XMLHttpRequest();
    req.open("GET", requestURL, true);
    req.addEventListener("load", function () {
      if (req.status == 200) resolve(req.responseText);
      else if (req.status == 404) throw new Error(xmlPath, "404");
    });
    req.addEventListener("error", function (event) {
      reject(event);
    });
    req.send(null);
  });
}

 

Bài viết liên quan

Lý thuyết về Cookie & Session & Localstorage

18-10-2024 Admin
22 views + likes

Cookie thích hợp cho việc lưu trữ thông tin nhỏ và ngắn hạn, Session là lựa chọn tốt để lưu trữ thông tin bảo mật như phiên làm việc

Xử lý bất đồng bộ với callback, promise, và async/await trong JavaScript

27-09-2024 Admin
32 views + likes

Bất đồng bộ là một khái niệm quan trọng trong lập trình, đặc biệt là trong các ứng dụng web và xử lý tác vụ như tải dữ liệu từ máy chủ, đọc file từ hệ thống

Javascript cơ bản

13-09-2024 Admin
107 views + likes

Nhập môn javascript

Các phần nâng cao trong DOM

27-08-2024 Admin
104 views + likes

Khi bạn đã thành thạo các phần cơ bản của DOM Manipulation, bạn có thể khám phá các khía cạnh nâng cao để tạo ra các ứng dụng web mạnh mẽ và tối ưu hơn.

Hướng dẫn về DOM Manipulation trong javascript

26-08-2024 Admin
197 views + likes

DOM Manipulation trong JavaScript là quá trình tương tác và thay đổi nội dung, cấu trúc hoặc kiểu dáng của tài liệu HTML bằng cách sử dụng JavaScript