STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    HTTP Request và HTTP Response

    Tìm hiểu về hai loại thông điệp HTTP Request và HTTP Response của giao thức HTTP.
    02/05/2015 30/08/2020 4 phút đọc
    HTTP Request và HTTP Response

    HTTP Message

    HTTP là giao thức được thiết kế theo kiểu client - server, giao tiếp giữa client và server dựa vào một cặp request - response, client đưa ra các request và server sẽ response trả lời các request này.

    HTTP Request

    Để bắt đầu trao đổi dữ liệu, phía client khởi tạo một HTTP session bằng cách mở một kết nối TCP đến HTTP server sau đó gửi request đến server này.

    Request có thể được tạo bằng nhiều cách, trực tiếp khi người dùng nhấp vào một liên kết trên trình duyệt hoặc gián tiếp, ví dụ như một video được đính kèm trong một website và việc request đến website này sẽ dẫn đến một request tới video ấy.

    REQUEST HEADERS
    :authority: www.stdio.vn
    :method: GET
    :path: /_next/static/ZrwbBww0e97zkPL2IVopl/pages/index.js
    :scheme: https
    accept: application/signed-exchange;v=b3;q=0.9,*/*;q=0.8
    accept-encoding: gzip, deflate, br
    accept-language: en-US,en;q=0.9
    cookie: ...
    purpose: prefetch
    referer: https://www.stdio.vn/article/http-request-va-http-response-uve8H
    sec-fetch-dest: empty
    sec-fetch-mode: no-cors
    sec-fetch-site: same-origin
    user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36

    Bắt đầu của HTTP Request bao gồm rất nhiều thông tin như trên như:

    • Accept: loại nội dung có thể nhận được từ thông điệp response. Ví dụ: text/plain, text/html, ...
    • Accept-Encoding: các kiểu nén được chấp nhận. Ví dụ: gzip, deflate, xz, exi, ...
    • Connection: tùy chọn điều khiển cho kết nối hiện thời. Ví dụ: keep-alive, Upgrade, ...
    • Cookie: thông tin HTTP Cookie từ server.
    • User-Agent: thông tin về user agent của người dùng.

    Phương thức GET và POST

    :method: GET

    2 phương thức được sử dụng nhiều nhất trong HTTP request là GETPOST.

    Với GET, câu truy vấn sẽ được đính kèm vào đường dẫn của HTTP request. Ví dụ: /?username=phipham&password=hong

    1 số đặc điểm của phương thức GET:

    • Có thể được cached, bookmark và lưu trong lịch sử của trình duyệt.
    • Bị giới hạn về chiều dài, do chiều dài của URL là có hạn.
    • Không nên dùng với dữ liệu quan trọng, chỉ dùng để nhận dữ liệu.

    Với POST, câu truy vấn sẽ được gửi trong phần message body của HTTP request.

    1 số đặc điểm của phương thức POST:

    • Không thể, cached, bookmark hay lưu trong lịch sử trình duyệt.
    • Không bị giới hạn về độ dài.

    Các phương thức khác:

    Ngoài GETPOST, HTTP request còn có thể có một số phương thức khác như:

    • HEAD: giống như GET nhưng chỉ gửi về HTTP header.
    • PUT: tải lên một mô tả về URI định trước.
    • DELETE: xóa một tài nguyên định trước.
    • OPTIONS: trả về phương thức HTTP mà server hỗ trợ.
    • CONNECT: chuyển kết nối của HTTP request thành một kết nối HTTP tunnel.

    HTTP Response

    Cấu trúc HTTP response gần giống với HTTP request.

    RESPONSE HEADERS
    content-encoding: gzip
    content-language: vi
    content-type: text/html; charset=utf-8
    date: Sun, 30 Aug 2020 09:26:40 GMT
    etag: "3d976-qAWpMRUg3LVCUidZKMR1pqs9VEM"
    set-cookie: next-i18next=vi; path=/; expires=Mon, 30 Aug 2021 09:26:40 GMT
    status: 200
    vary: Accept-Encoding
    x-powered-by: Next.js
    • status: mã kết quả trả về, hay còn gọi là HTTP Status Codes.

    HTTP Status Codes

    Một số loại thông dụng mà server trả về cho client như sau:

    1xx: information Message

    Các status code này chỉ có tính chất tạm thời, client có thể không quan tâm.

    2xx Successful

    Khi đã xử lý thành công request của client, server trả về status dạng này:

    • 200 OK: request thành công.
    • 202 Accepted: request đã được nhận, nhưng không có kết quả nào trả về, thông báo cho client tiếp tục chờ đợi.
    • 204 No Content: request đã được xử lý nhưng không có thành phần nào được trả về.
    • 205 Reset: giống như 204 nhưng mã này còn yêu câu client reset lại document view.
    • 206 Partial Content: server chỉ gửi về một phần dữ liệu, phụ thuộc vào giá trị range header của client đã gửi.

    3xx Redirection

    Server thông báo cho client phải thực hiện thêm thao tác để hoàn tất request:

    • 301 Moved Permanently: tài nguyên đã được chuyển hoàn toàn tới địa chỉ Location trong HTTP response.
    • 303 See other: tài nguyên đã được chuyển tạm thời tới địa chỉ Location trong HTTP response.
    • 304 Not Modified: tài nguyên không thay đổi từ lần cuối client request, nên client có thể sử dụng đã lưu trong cache.

    4xx Client error

    Lỗi của client:

    • 400 Bad Request: request không đúng dạng, cú pháp.
    • 401 Unauthorized: client chưa xác thực.
    • 403 Forbidden: client không có quyền truy cập.
    • 404 Not Found: không tìm thấy tài nguyên.
    • 405 Method Not Allowed: phương thức không được server hỗ trợ.

    5xx Server Error

    Lỗi của server:

    • 500 Internal Server Error: có lỗi trong quá trình xử lý của server.
    • 501 Not Implemented: server không hỗ trợ chức năng client yêu cầu.
    • 503 Service Unavailable: Server bị quá tải, hoặc bị lỗi xử lý.
    0 Bình luận
    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021