Computer >> Máy Tính >  >> Kết nối mạng >> Internet

Giới thiệu về HTTP:mọi thứ bạn cần biết

Trong bài viết này, tôi sẽ hướng dẫn bạn cách hoạt động của world wide web ở cấp độ cơ bản.

Công nghệ cốt lõi là HTTP - Giao thức truyền siêu văn bản. Đó là giao thức giao tiếp bạn sử dụng khi duyệt web.

Ở cấp độ cơ bản, khi bạn truy cập một trang web, trình duyệt của bạn thực hiện một yêu cầu HTTP tới một máy chủ. Sau đó, máy chủ đó phản hồi bằng một tài nguyên (hình ảnh, video hoặc HTML của trang web) - mà sau đó trình duyệt của bạn sẽ hiển thị cho bạn.

Đây là mô hình dựa trên thông điệp của HTTP. Mọi tương tác HTTP đều bao gồm một yêu cầu và một phản hồi.

Về bản chất, HTTP là không trạng thái.

Không trạng thái có nghĩa là tất cả các yêu cầu đều tách biệt với nhau. Vì vậy, mỗi yêu cầu từ trình duyệt của bạn phải chứa đủ thông tin riêng để máy chủ thực hiện yêu cầu. Điều đó cũng có nghĩa là mỗi giao dịch của mô hình dựa trên thông điệp của HTTP được xử lý riêng biệt với các giao dịch khác.

URL

URL (Uniform Resource Locator) có lẽ là khái niệm được biết đến nhiều nhất của Web. Nó cũng là một trong những khái niệm quan trọng và hữu ích nhất. URL là một địa chỉ web được sử dụng để xác định các tài nguyên trên Web.

Ý tưởng về web được cấu trúc xung quanh các tài nguyên. Ngay từ những ngày đầu thành lập, Web là nền tảng để chia sẻ các tệp văn bản / HTML, tài liệu, hình ảnh, v.v. và như vậy, nó có thể được coi là một tập hợp các tài nguyên.

Giới thiệu về HTTP:mọi thứ bạn cần biết
Ví dụ về URL

Giao thức - Thông thường chúng là HTTP (hoặc HTTPS cho phiên bản bảo mật của HTTP).

Các giao thức đáng chú ý khác là:

  • Giao thức truyền tệp (FTP) - là một giao thức tiêu chuẩn được sử dụng để truyền tệp giữa máy khách và máy chủ qua mạng.
  • Giao thức truyền thư đơn giản (SMTP) là một tiêu chuẩn để truyền email.

Miền - Tên được sử dụng để xác định một hoặc nhiều địa chỉ IP nơi chứa tài nguyên.

Đường dẫn —Chỉ định vị trí tài nguyên trên máy chủ. Nó sử dụng logic tương tự như vị trí tài nguyên được sử dụng trên thiết bị mà bạn đang đọc bài viết này (tức là /search/cars/VWBeetle.pdf hoặc C:/ my Cars / VWBeetle.pdf).

Thông số - Dữ liệu bổ sung được sử dụng để xác định hoặc lọc tài nguyên trên máy chủ.

Lưu ý :Khi tìm kiếm các bài báo và thông tin khác về HTTP, bạn có thể gặp phải thuật ngữ URI (hoặc định danh tài nguyên thống nhất). URI đôi khi được sử dụng thay vì URL nhưng chủ yếu là trong các thông số kỹ thuật chính thức và bởi những người muốn thể hiện. :)

Yêu cầu HTTP

Trong HTTP, mọi yêu cầu phải có địa chỉ URL. Ngoài ra, yêu cầu cần một phương pháp. Bốn phương thức HTTP chính là:

  • NHẬN
  • ĐẶT
  • ĐĂNG
  • XÓA

Tôi sẽ giải thích các phương pháp này và hơn thế nữa, trong phần Phương thức HTTP của bài viết này.

Và các phương pháp này tương ứng trực tiếp với các hành động:

  • đọc
  • cập nhật
  • tạo
  • xóa

Tất cả các thông báo HTTP đều có một hoặc nhiều tiêu đề, theo sau là nội dung thông báo tùy chọn. Phần nội dung chứa dữ liệu sẽ được gửi cùng với yêu cầu hoặc dữ liệu nhận được cùng với phản hồi.

Phần đầu tiên của mỗi yêu cầu HTTP chứa ba mục:

Ví dụ:

  • NHẬN / thêm / tìm kiếm-kết quả? item =vw + bọ HTTP / 1.1

Khi URL chứa “?” dấu hiệu, nó có nghĩa là nó chứa một truy vấn. Điều đó có nghĩa là nó gửi các tham số của tài nguyên được yêu cầu.

  1. Phần đầu tiên là một phương thức cho biết phương thức HTTP nào được sử dụng. Thường được sử dụng nhất là phương pháp GET. Phương thức GET truy xuất tài nguyên từ máy chủ web và vì GET không có nội dung thư nên không có nội dung sau khi cần tiêu đề.
  2. Phần thứ hai là URL được yêu cầu.
  3. Phần thứ ba là phiên bản HTTP đang được sử dụng. Phiên bản 1.1. là phiên bản phổ biến nhất cho hầu hết các trình duyệt, tuy nhiên, phiên bản 2.0 đang chiếm ưu thế.

Ngoài ra còn có một số điều thú vị khác trong một yêu cầu HTTP:

Tiêu đề giới thiệu - cho URL từ nơi yêu cầu bắt nguồn.

Tiêu đề Tác nhân người dùng - thông tin bổ sung về trình duyệt đang được sử dụng để tạo yêu cầu.

Tiêu đề máy chủ lưu trữ - xác định duy nhất một tên máy chủ; nó là cần thiết khi nhiều trang web được lưu trữ trên cùng một máy chủ.

Tiêu đề cookie - gửi các thông số bổ sung cho khách hàng.

Phản hồi HTTP

Cũng giống như trong các yêu cầu HTTP, phản hồi HTTP cũng bao gồm ba mục:

Ví dụ:

HTTP / 1.1 200 OK

  1. Phần đầu tiên là phiên bản HTTP đang được sử dụng.
  2. Phần thứ hai là mã số của kết quả cho yêu cầu.
  3. Phần thứ ba là mô tả bằng văn bản của phần thứ hai.

Có một số điều thú vị khác trong phản hồi HTTP:

Tiêu đề máy chủ - thông tin về phần mềm máy chủ web nào đang được sử dụng.

Tiêu đề Set-Cookie - cấp cookie cho trình duyệt.

Nội dung thư - một phản hồi HTTP thường chứa một nội dung thư.

Tiêu đề độ dài nội dung - cho biết kích thước của nội dung thư tính bằng byte.

Phương thức HTTP

Các phương pháp phổ biến nhất là GET và POST. Nhưng cũng có một số người khác.

NHẬN - Bạn sử dụng phương pháp này để yêu cầu dữ liệu từ một tài nguyên cụ thể, nơi dữ liệu không được sửa đổi theo bất kỳ cách nào. Yêu cầu GET không thay đổi trạng thái của tài nguyên.

ĐĂNG - Bạn sử dụng phương pháp này để gửi dữ liệu đến máy chủ để tạo tài nguyên.

ĐẶT - Bạn sử dụng phương pháp này để cập nhật tài nguyên hiện có trên máy chủ bằng cách sử dụng nội dung trong phần thân của yêu cầu. Hãy coi đây là một cách để "chỉnh sửa" một cái gì đó.

ĐẦU - Bạn sử dụng phương thức này giống như cách bạn sử dụng GET, nhưng có sự khác biệt rằng trả về của phương thức HEAD không được chứa nội dung trong phản hồi. Nhưng kết quả trả về sẽ chứa các tiêu đề giống như khi GET được sử dụng. Bạn sử dụng phương thức HEAD để kiểm tra xem tài nguyên có sẵn hay không trước khi thực hiện yêu cầu GET.

TRACE - Bạn sử dụng phương pháp này cho mục đích chẩn đoán. Phản hồi sẽ chứa nội dung chính xác của thông báo yêu cầu.

TÙY CHỌN - Bạn sử dụng phương pháp này để mô tả các tùy chọn giao tiếp (phương thức HTTP) có sẵn cho tài nguyên đích.

PATCH - Bạn sử dụng phương pháp này để áp dụng các sửa đổi một phần cho tài nguyên.

XÓA - Bạn sử dụng phương pháp này để xóa tài nguyên đã chỉ định.

REST

Truyền trạng thái đại diện (REST) ​​là một kiểu kiến ​​trúc trong đó các yêu cầu và phản hồi chứa các biểu diễn về trạng thái hiện tại của tài nguyên hệ thống.

Cách "thông thường":

  • https://carapp.com/search?make=wv&model=beetle

Kiểu REST:

  • https://carapp.com/search/vw/beetle

Bạn có thể tìm hiểu thêm về REST tại đây nếu bạn tò mò.

Tiêu đề HTTP

Có ba thành phần chính tạo nên cấu trúc yêu cầu / phản hồi. Chúng bao gồm:

  • Dòng đầu tiên
  • Tiêu đề
  • Nội dung / Nội dung

Chúng ta đã nói về dòng đầu tiên trong các yêu cầu và phản hồi HTTP, và chức năng cơ thể cũng đã được đề cập. Bây giờ chúng ta sẽ nói về tiêu đề HTTP.

Các tiêu đề HTTP được thêm vào sau dòng đầu tiên và được định nghĩa là các cặp tên:giá trị được phân tách bằng dấu hai chấm. Tiêu đề HTTP được sử dụng để gửi các tham số bổ sung cùng với yêu cầu hoặc phản hồi.

Như tôi đã nói, nội dung thư bao gồm dữ liệu được gửi cùng với yêu cầu hoặc dữ liệu nhận được cùng với phản hồi.

Có nhiều loại tiêu đề khác nhau được nhóm dựa trên việc sử dụng chúng thành 4 danh mục lớn:

  • Tiêu đề chung - Tiêu đề có thể được sử dụng trong cả thông báo yêu cầu và phản hồi và độc lập với dữ liệu được trao đổi.
  • Tiêu đề yêu cầu - Các tiêu đề này xác định các tham số cho dữ liệu được yêu cầu hoặc các tham số cung cấp thông tin quan trọng về việc khách hàng đưa ra yêu cầu.
  • Tiêu đề phản hồi - Các tiêu đề này chứa thông tin về phản hồi đến.
  • Tiêu đề thực thể - Tiêu đề thực thể mô tả nội dung tạo nên phần nội dung của thông báo.
Giới thiệu về HTTP:mọi thứ bạn cần biết
Các loại tiêu đề

Mã trạng thái HTTP

Khi duyệt web, bạn có thể gặp phải các trang "lỗi 404:không tìm thấy" hoặc các trang "lỗi 500:máy chủ không phản hồi".

Đây là các mã trạng thái HTTP.

Mọi thông báo phản hồi HTTP phải chứa mã trạng thái HTTP ở dòng đầu tiên, cho chúng tôi biết kết quả của yêu cầu.

Giới thiệu về HTTP:mọi thứ bạn cần biết

Có năm nhóm mã trạng thái được nhóm theo chữ số đầu tiên:

  • 1xx - Thông tin.
  • 2xx - Yêu cầu đã thành công.
  • 3xx - Máy khách được chuyển hướng đến một tài nguyên khác.
  • 4xx - Yêu cầu có một số lỗi.
  • 5xx - Máy chủ gặp lỗi khi thực hiện yêu cầu.

Đây là danh sách đầy đủ các Mã phản hồi trạng thái HTTP và giải thích về chúng.

HTTPS (Bảo mật Giao thức Truyền Siêu văn bản)

Phiên bản bảo mật của giao thức HTTP là Giao thức truyền siêu văn bản Secure (HTTPS). HTTPS cung cấp giao tiếp được mã hóa giữa trình duyệt (máy khách) và trang web (máy chủ).

Trong HTTPS, giao thức truyền thông được mã hóa bằng Bảo mật lớp truyền tải (TLS) hoặc Lớp cổng bảo mật (SSL).

Do đó, giao thức cũng thường được gọi là HTTP qua TLS hoặc HTTP qua SSL.

Cả giao thức TLS và SSL đều sử dụng hệ thống mã hóa không đối xứng. Hệ thống mã hóa không đối xứng sử dụng khóa công khai (khóa mã hóa) và khóa riêng (khóa giải mã) để mã hóa một tin nhắn.

Bất kỳ ai cũng có thể sử dụng khóa công khai để mã hóa tin nhắn. Tuy nhiên, khóa riêng là bí mật và điều đó có nghĩa là chỉ người nhận dự kiến ​​mới có thể giải mã tin nhắn.

Giới thiệu về HTTP:mọi thứ bạn cần biết
Ví dụ về hệ thống mã hóa không đối xứng

Bắt tay SSL / TLS

Khi bạn yêu cầu kết nối HTTPS với một trang web, trang web đó sẽ gửi chứng chỉ SSL đến trình duyệt của bạn. Quá trình mà trình duyệt và trang web của bạn bắt đầu giao tiếp được gọi là “bắt tay SSL / TLS”.

Quá trình bắt tay SSL / TLS bao gồm một loạt các bước trong đó trình duyệt và trang web xác thực lẫn nhau và bắt đầu giao tiếp thông qua đường hầm SSL / TLS.

Như bạn có thể đã nhận thấy, khi một đường hầm an toàn đáng tin cậy được sử dụng trong kết nối HTTPS, biểu tượng ổ khóa màu xanh lục sẽ được hiển thị trên thanh địa chỉ của trình duyệt.

Giới thiệu về HTTP:mọi thứ bạn cần biết
Ví dụ về một trong các trang bảo mật của tôi

Lợi ích của HTTPS

Các lợi ích chính của HTTPS là:

  • Thông tin khách hàng, như số thẻ tín dụng và các thông tin nhạy cảm khác, được mã hóa và không thể bị chặn.
  • Khách truy cập có thể xác minh rằng bạn là doanh nghiệp đã đăng ký và bạn sở hữu miền.
  • Khách hàng biết rằng họ không được phép truy cập vào các trang web không có HTTPS và do đó, họ có nhiều khả năng tin tưởng và hoàn tất việc mua hàng từ các trang web sử dụng HTTPS.

Cảm ơn bạn đã đọc! Xem thêm các bài viết như thế này trên hồ sơ freeCodeCamp của tôi. Và xem những nội dung thú vị khác mà tôi xây dựng trên trang GitHub của mình.