HTTP & HTTPS – Nền tảng giao tiếp trên Web

Khi làm web hoặc backend, có một thứ gần như xuất hiện ở mọi nơi nhưng rất dễ bị xem là hiển nhiên: HTTP.

Mỗi khi mở một website, gọi một API, đăng nhập, gửi form hay tải một file, client và server đều cần một cách để giao tiếp với nhau.

HTTP chính là một trong những nền tảng quan trọng nhất làm nên quá trình đó.

HTTPS về cơ bản là HTTP được bảo vệ bằng TLS, giúp dữ liệu trao đổi giữa client và server được mã hóa và xác thực.

Để hiểu web hoạt động như thế nào, việc hiểu HTTP và HTTPS là rất quan trọng.

1. HTTP là gì?

HTTP – HyperText Transfer Protocol là giao thức được sử dụng để giao tiếp giữa các hệ thống trên Web.

Có thể hình dung đơn giản:

Client                         Server
  │                              │
  │────── HTTP Request ─────────>│
  │                              │
  │<───── HTTP Response ─────────│
  │                              │

Client có thể là:

  • Browser
  • Mobile App
  • Frontend
  • Một service khác
  • Postman
  • Một chương trình bất kỳ có khả năng gửi HTTP request

Server nhận request, xử lý và trả về response.

Ví dụ khi truy cập:

https://example.com/users

Browser có thể gửi request đến server để yêu cầu tài nguyên /users.

Server xử lý và trả về kết quả.

2. HTTP hoạt động theo mô hình Client – Server

HTTP thường được nhìn dưới mô hình:

Client
   │
   │ Request
   ↓
Server
   │
   │ Response
   ↓
Client

Client là bên gửi yêu cầu.

Server là bên nhận yêu cầu và trả kết quả.

Ví dụ:

Browser
   │
   │ GET /products
   ↓
Backend Server
   │
   │ JSON
   ↓
Browser

Trong một ứng dụng thực tế, client và server có thể nằm trên hai máy hoàn toàn khác nhau và giao tiếp thông qua Internet.

3. HTTP Request là gì?

HTTP Request là yêu cầu mà client gửi đến server.

Một request thường gồm:

Method
URL
Headers
Body

Ví dụ:

POST /users HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "name": "John",
    "email": "[email protected]"
}

Ở đây:

POST

là HTTP Method.

/users

là resource mà client muốn thao tác.

Headers cung cấp thêm thông tin.

Body chứa dữ liệu gửi lên server.

4. HTTP Method

HTTP định nghĩa nhiều method khác nhau để mô tả mục đích của request.

Những method thường gặp nhất:

Method Ý nghĩa
GET Lấy dữ liệu
POST Tạo dữ liệu hoặc gửi dữ liệu để xử lý
PUT Cập nhật/thay thế resource
PATCH Cập nhật một phần resource
DELETE Xóa resource

Ví dụ một API quản lý user:

GET     /users
POST    /users
GET     /users/10
PUT     /users/10
PATCH   /users/10
DELETE  /users/10

Có thể hiểu:

GET     → Tôi muốn lấy
POST    → Tôi muốn tạo/gửi
PUT     → Tôi muốn thay thế/cập nhật
PATCH   → Tôi muốn cập nhật một phần
DELETE  → Tôi muốn xóa

5. HTTP Response

Sau khi server nhận và xử lý request, nó trả về HTTP Response.

Một response thường gồm:

Status Code
Headers
Body

Ví dụ:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 10,
    "name": "John"
}

Ở đây:

200

là status code.

Body chứa dữ liệu server trả về.

6. HTTPS là gì?

HTTPS – HyperText Transfer Protocol Secure có thể hiểu là HTTP được truyền thông qua TLS (Transport Layer Security).

Có thể hình dung:

HTTP
  +
TLS
  ↓
HTTPS

HTTPS cung cấp các thuộc tính bảo mật quan trọng cho kết nối, đặc biệt là:

  • Confidentiality – bảo mật nội dung
  • Integrity – đảm bảo dữ liệu không bị thay đổi trái phép
  • Authentication – xác thực server thông qua certificate

7. Certificate là gì?

Khi truy cập:

https://example.com

browser cần có cơ chế để xác định server thực sự đang giao tiếp có đúng là example.com hay không.

Đây là lúc Digital Certificate xuất hiện.

Certificate có thể chứa thông tin như:

Domain
Public Key
Certificate Authority
Validity Period
Digital Signature

Browser kiểm tra certificate và chuỗi tin cậy của nó.

Nếu mọi thứ hợp lệ, browser có thể tiếp tục thiết lập kết nối HTTPS.

8. Public Key và Private Key

HTTPS sử dụng cryptography với public key và private key trong quá trình thiết lập và xác thực kết nối.

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

Public Key
→ Có thể chia sẻ

Private Key
→ Phải được giữ bí mật

Certificate thường chứa public key.

Private key được server giữ bí mật.

Một server không được để lộ private key vì nó có thể phá vỡ tính bảo mật của cơ chế xác thực liên quan.

9. Tổng kết

HTTP là một giao thức nền tảng của Web, cho phép client và server giao tiếp thông qua mô hình:

Request → Server → Response

Một HTTP request có thể chứa:

Method
URL
Headers
Body

HTTPS là HTTP được bảo vệ bằng TLS, giúp cung cấp:

Confidentiality
Integrity
Authentication

HTTPS sử dụng certificate và cryptographic mechanisms để thiết lập một kết nối an toàn giữa client và server.

Bài viết khác

Return First

Return First – Tư duy xử lý điều kiện trong code Khi bắt đầu làm việc với code thực tế, chúng ta sẽ thường gặp những function chứa rất nhiều điều kiện. Ban đầu, việc sử dụng if/else để xử lý từng trường hợp là hoàn toàn bình thường. Tuy nhiên, khi logic ngày càng […]

SOLID

SOLID – 5 nguyên tắc giúp thiết kế code tốt hơn SOLID là 5 nguyên tắc thiết kế trong lập trình hướng đối tượng (OOP), giúp code dễ đọc, dễ thay đổi, dễ mở rộng và dễ bảo trì. SOLID không phải framework hay tool mà là tư duy thiết kế code. Nó giúp hạn […]

Waterfall và Agile/Scrum: Mô hình nào phù hợp hơn?

Waterfall và Agile/Scrum: Mô hình nào phù hợp hơn? Khi tìm hiểu về phát triển phần mềm, chúng ta thường nghe rằng Agile/Scrum hiện đại hơn Waterfall và Waterfall đã trở nên lỗi thời. Tuy nhiên, đây là một cách nhìn chưa hoàn toàn chính xác. Waterfall vẫn được sử dụng trong thực tế và […]

Kanban là gì? Hiểu nhanh về phương pháp quản lý công việc

Kanban là gì? Hiểu nhanh về phương pháp quản lý công việc Khi làm việc trong một team phát triển phần mềm, việc biết ai đang làm gì, công việc đang ở đâu và task nào đang bị tồn đọng rất quan trọng. Kanban được sử dụng để giúp team trực quan hóa và quản […]

Verification vs Validation (Xác minh-Xác nhận)

1. Tổng quan nền tảng và định nghĩa cốt lõi về Verification và Validation: Trong ngành kỹ thuật phần mềm, việc kiểm soát chất lượng sản phẩm luôn đòi hỏi một hệ thống tiêu chuẩn khắt khe và rõ ràng. Tuy nhiên, ranh giới giữa việc “xem phần mềm đã đúng chuẩn chưa” và “phần […]

Waterfall là gì?

Mô hình Waterfall là gì? Waterfall (Thác nước) là một phương pháp quản lý dự án và phát triển phần mềm theo trình tự tuyến tính, nghiêm ngặt. Trong mô hình này, các giai đoạn phát triển diễn ra nối tiếp nhau như một dòng thác chảy từ trên xuống: giai đoạn trước phải hoàn […]

Leave a Reply

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