Các phương thức và cấu trúc của giao thức HTTP. Xem "HTTP" là gì trong các từ điển khác

Có thể bạn đã nhiều lần nghe nói rằng Google ưu tiên các trang web sử dụng giao thức kết nối HTTPS an toàn. Có đúng không? Trong bài viết này chúng ta sẽ xem xét các giao thức HTTP và HTTPS , sự khác biệt giữa chúng là gì và liệu việc chuyển trang web của bạn sang HTTPS có đáng không.

HTTP – được sử dụng để lấy dữ liệu từ các trang web dưới dạng giao thức ứng dụng. HTTPS – tiện ích mở rộng cho giao thức HTTP, hỗ trợ giao thức SSL và TLS. Như bạn có thể thấy, HTTP và HTTPS không phải là các giao thức khác nhau và HTTPS chỉ là một tiện ích bổ sung để mã hóa, được sử dụng cho quy trình trao đổi thông tin an toàn và ủy quyền các máy chủ yêu cầu bảo mật bổ sung.

Giao thức truyền siêu văn bản (HTTP) chủ yếu được sử dụng để truy cập các trang HTML. Giao thức không lưu trữ thông tin về phiên trước đó của người dùng nên gửi ít dữ liệu hơn và do đó hoạt động nhanh hơn.

HTTPS an toàn được sử dụng để ủy quyền và giao dịch an toàn. Nó hoạt động giống hệt HTTP, nhưng sử dụng một lớp bảo vệ dữ liệu mật mã bổ sung - giao thức SSL. Về mặt kỹ thuật, cả hai giao thức đều sử dụng hai cổng khác nhau để liên lạc: không giống như HTTP, giao thức an toàn sử dụng cổng TCP 443. Nhờ SSL, việc trao đổi dữ liệu được thực hiện ở mức độ an toàn và điều này rất quan trọng đối với các trang web lưu trữ thông tin bí mật của khách hàng, chẳng hạn như dữ liệu thẻ ngân hàng.

Không có gì lạ khi công cụ tìm kiếm Google tin tưởng hơn vào các trang web quan tâm đến tính bảo mật của khách truy cập, đó là lý do tại sao các dự án có HTTPS được xếp hạng cao hơn. Việc chuyển sang “chế độ an toàn” sẽ hữu ích ngay cả đối với những trang web không cần lo lắng về dữ liệu cá nhân của người dùng. Những trang web như vậy sẽ nhận được lợi thế trong kết quả tìm kiếm và theo đó, sẽ thu hút nhiều khách truy cập hơn vào trang của họ.

Những khía cạnh kỹ thuật nào làm nền tảng cho TLS (Bảo mật lớp vận chuyển) :

  • mã hóa thông tin để cải thiện tính bảo mật của việc truyền tải nó;
  • bảo toàn tính toàn vẹn của dữ liệu không bị thay đổi hoặc biến dạng trong quá trình truyền;
  • xác thực, đảm bảo rằng khách truy cập sẽ đến được chính xác trang web họ cần.

Mặc dù công cụ tìm kiếm xếp hạng các trang web có HTTPS cao hơn nhưng yếu tố này vẫn có ít trọng số so với các yếu tố khác mà nó cũng chú ý đến, chẳng hạn như chất lượng nội dung.

Lợi ích của việc chuyển sang HTTPS về mặt :

  1. duy trì dữ liệu giới thiệu người dùng được bảo vệ;
  2. tăng thứ hạng tìm kiếm (mặc dù yếu tố này còn ít quan trọng nhưng chắc chắn nó sẽ tăng tầm quan trọng trong tương lai);
  3. tính bảo mật: mã hóa tất cả thông tin liên lạc, không thể tiếp cận được với bên thứ ba, bảo vệ thông tin cá nhân.

Nhưng ngoài tất cả những ưu điểm trên, quá trình chuyển đổi như vậy cũng có những nhược điểm khiến nhiều quản trị viên web lo ngại. Ví dụ: nếu bạn không làm theo lời khuyên của các chuyên gia, việc chuyển sang HTTPS sẽ làm giảm tốc độ tải trang web một chút. Ngoài ra, trang HTTP và trang HTTPS là hai tài nguyên khác nhau đối với một công cụ tìm kiếm, do đó, hệ thống cần có thời gian để hiểu rằng đây là cùng một trang và gắn chúng lại với nhau. Ngoài ra, để chuyển sang chế độ bảo mật, bạn cần mua chứng chỉ SSL, mức giá tùy thuộc vào loại của nó.

Để tránh các vấn đề trong quá trình chuyển đổi, bạn phải tuân thủ các quy tắc sau:

  • chọn chứng chỉ cần thiết cho tài nguyên của bạn: cho một miền, nhiều miền hoặc ký tự đại diện;
  • sử dụng chứng chỉ có khóa 2048 bit;
  • không chặn lập chỉ mục các trang HTTPS trong tệp robots.txt;
  • Cố gắng hết mức có thể để không sử dụng noindex trong thẻ meta “robot”;
  • phân tích quá trình chuyển đổi từ HTTP sang HTTPS trong Công cụ quản trị trang web của Google;
  • sử dụng các URL tương đối mà không chỉ định giao thức cho tất cả các tên miền khác, v.v.

Nếu làm theo những lời khuyên này, bạn có thể dễ dàng chuyển sang giao thức HTTPS an toàn. Hãy tin tôi, khách truy cập và khách hàng của bạn sẽ đánh giá cao nó. Xét cho cùng, một trang web quan tâm đến sự an toàn của dữ liệu người dùng sẽ được tin cậy hơn nhiều. Chuyển sang HTTPS: Cài đặt SSL miễn phí! Chi tiết .

Tại Hyperhost, bạn có thể mua chứng chỉ SSL cần thiết cho dự án trực tuyến của mình và từ đó thực hiện chuyển đổi sang HTTPS. Bộ phận hỗ trợ kỹ thuật của chúng tôi sẽ giúp bạn thực hiện tất cả các cài đặt cần thiết và trả lời tất cả các câu hỏi của bạn. Bạn có thể đọc về những ưu điểm của chứng chỉ SSL và các loại của nó trong bài viết trước:. Lợi ích của việc chuyển sang HTTPS được mô tả chi tiết hơn.

5075 lần 5 lượt xem hôm nay

Mục đích của bài giảng: hình thành sự hiểu biết về hoạt động của giao thức HTTP/HTTPS.

HTTP (Giao thức truyền siêu văn bản) là một trong những giao thức quan trọng nhất cho phép truyền dữ liệu qua Internet. Giao thức HTTP nằm ở lớp ứng dụng thứ bảy của mô hình OSI và hoạt động trên cơ sở giao thức TCP.

Vì giao thức HTTP nằm ở lớp ứng dụng nên các ứng dụng ứng dụng có thể sử dụng nó trực tiếp để tổ chức giao tiếp mạng. Ngoài ra, giao thức HTTP là một phần quan trọng của ứng dụng web. Trong trường hợp này, trình duyệt sử dụng khả năng HTTP sẽ tương tác với máy chủ để lấy dữ liệu cần thiết.

Giao thức HTTP liên quan đến việc truyền dữ liệu ở chế độ "yêu cầu-phản hồi". Hơn nữa, trong khuôn khổ tương tác như vậy, hầu hết mọi loại dữ liệu đều có thể được truyền đi - văn bản thuần túy, siêu văn bản (HTML), biểu định kiểu, tập lệnh máy khách, hình ảnh, tài liệu ở nhiều định dạng khác nhau, thông tin nhị phân, v.v.

Trong giao thức HTTP, luôn có sự phân biệt rõ ràng giữa máy khách và máy chủ. Khách hàng luôn là người khởi xướng sự tương tác. Đến lượt mình, máy chủ sẽ lắng nghe tất cả các kết nối đến và xử lý từng kết nối đó. Vì giao tiếp HTTP hoạt động trên cơ sở phản hồi yêu cầu nên phải tạo yêu cầu HTTP để bắt đầu phiên truyền dữ liệu. Là một phần của yêu cầu này, máy khách mô tả tài nguyên nào nó muốn nhận từ máy chủ và cũng chỉ định các tham số bổ sung khác nhau. Sau đó, yêu cầu được gửi đến máy chủ và nó sẽ xử lý yêu cầu đó và tạo ra phản hồi HTTP, chứa thông tin dịch vụ và nội dung của tài nguyên được yêu cầu. Nói chung, quá trình này có thể được mô tả sơ đồ như sau.


Một yêu cầu HTTP và một phản hồi HTTP có cấu trúc tương tự nhau và được gọi là Thông báo HTTP. Trên thực tế, tất cả giao tiếp trong giao thức HTTP đều chuyển tiếp các tin nhắn HTTP. Mỗi thông báo HTTP là thông tin văn bản thuần túy được trình bày theo một định dạng cụ thể. Chúng ta hãy xem xét kỹ hơn định dạng tin nhắn HTTP.

Mỗi thông báo HTTP bao gồm một số dòng. Dòng đầu tiên luôn là dòng chào mừng; nó khác biệt đáng kể đối với yêu cầu HTTP và phản hồi HTTP. Nó thường chứa thông tin chung về yêu cầu. Sau dòng đầu tiên trong thông báo HTTP có các tiêu đề HTTP - mỗi tiêu đề nằm trên một dòng mới. Tiêu đề HTTP hiện diện trong cả yêu cầu HTTP và phản hồi HTTP. Mục đích của tiêu đề HTTP là làm rõ thông báo HTTP để bên nhận thông báo HTTP này có thể xử lý thông báo đến chính xác hơn. Số lượng tiêu đề thông báo HTTP có thể thay đổi và phụ thuộc vào thông báo HTTP cụ thể. Nếu bên gửi tin rằng tiêu đề HTTP này là cần thiết trong thông báo HTTP này thì nó sẽ thêm nó, nếu không thì nó sẽ không thêm nó. Mỗi tiêu đề HTTP bắt đầu trên một dòng mới. Tiêu đề HTTP bao gồm tên và giá trị, đồng thời tên của tiêu đề xác định mục đích của nó. Tập hợp các tiêu đề HTTP được theo sau bởi một dòng trống, theo sau là phần nội dung của thông báo HTTP. Vì vậy, cấu trúc chung của một thông điệp HTTP có thể được biểu diễn như sau.


Yêu cầu HTTPđược tạo trên máy khách và gửi đến máy chủ để nhận thông tin từ nó. Nó chứa thông tin về tài nguyên bạn cần tải xuống cũng như thông tin bổ sung. Dòng đầu tiên chứa phương thức yêu cầu (chúng ta sẽ xem xét sau trong bài giảng này), tên tài nguyên (bao gồm đường dẫn tương đối trên máy chủ) và phiên bản giao thức. Ví dụ: loại dòng chào mừng có thể được định nghĩa là " NHẬN /images/corner1.png HTTP/1.1". Yêu cầu như vậy yêu cầu máy chủ trả về một hình ảnh nằm trong thư mục " hình ảnh" và được gọi là "corner1.png". Tiêu đề HTTP rất quan trọng đối với yêu cầu HTTP vì chúng cho biết thông tin rõ ràng về yêu cầu - phiên bản trình duyệt, khả năng chấp nhận nội dung nén của máy khách, khả năng lưu vào bộ nhớ đệm và các thông số quan trọng khác có thể ảnh hưởng đến việc tạo phản hồi . Phần thân của một yêu cầu HTTP thường chứa các thông tin cần được chuyển đến máy chủ. Ví dụ: nếu bạn cần tải một tệp lên máy chủ thì nội dung của tệp sẽ nằm trong phần thân của yêu cầu HTTP. Tuy nhiên , việc đặt dữ liệu vào nội dung của yêu cầu HTTP không được phép đối với tất cả các phương thức HTTP. Ví dụ: nội dung yêu cầu HTTP luôn trống nếu sử dụng phương thức GET. Vì vậy, một yêu cầu HTTP tiêu chuẩn có thể trông như thế này.


Trong yêu cầu HTTP sau, máy khách liên hệ với máy chủ " microsoft.com", yêu cầu tài nguyên" hình ảnh/góc.png" và cho biết rằng nó có khả năng chấp nhận nội dung nén "gzip" hoặc "deflate", ngôn ngữ của nó là tiếng Anh và cho biết phiên bản trình duyệt của nó. Như đã lưu ý trước đó, số lượng và bộ tiêu đề có thể thay đổi đáng kể. Một ví dụ khác là HTTP - lời yêu cầu.


Yêu cầu này khác với yêu cầu trước ở chỗ nó sử dụng phương thức POST, phương thức này cũng tải dữ liệu lên máy chủ. Trong trường hợp này, dữ liệu được chứa trong phần nội dung của yêu cầu HTTP sau một dòng trống.

Phản hồi HTTPđược tạo bởi máy chủ web để đáp ứng yêu cầu HTTP đến. Nó có cấu trúc tương tự như một yêu cầu HTTP, nhưng có một số khác biệt nhất định. Sự khác biệt chính là ở dòng đầu tiên. Thay vì tên của tài nguyên được yêu cầu và phương thức yêu cầu, nó cho biết trạng thái của phản hồi. Trạng thái cho biết yêu cầu HTTP thành công như thế nào. Ví dụ: nếu một tài liệu được tìm thấy trên máy chủ và có thể được cấp cho máy khách thì trạng thái có giá trị " ĐƯỢC RỒI", cho biết rằng yêu cầu đã được hoàn thành thành công. Tuy nhiên, các tình huống ngoại lệ có thể xuất hiện - ví dụ: tài liệu không có trên máy chủ hoặc người dùng không có quyền nhận tài nguyên. Chúng tôi sẽ xem xét một tập hợp các trạng thái phản hồi HTTP khác nhau các tin nhắn sau trong bài giảng này. Do đó, dòng đầu tiên của phản hồi HTTP có thể là "HTTP/1.1 200 OK". Các tiêu đề HTTP trong phản hồi HTTP cũng là một thành phần quan trọng. Chúng mô tả nội dung được gửi đến máy khách. Đối với ví dụ: các tiêu đề HTTP này có thể chứa thông tin về loại nội dung (tài liệu HTML, hình ảnh, v.v.), độ dài nội dung (kích thước tính bằng byte), ngày sửa đổi, chế độ bộ đệm, v.v. Tất cả các tiêu đề này ảnh hưởng đến cách hiển thị dữ liệu trên máy khách, đồng thời đặt quy tắc lưu trữ dữ liệu trong bộ nhớ đệm của máy khách. Một phản hồi HTTP thông thường có thể trông như thế này:


Trong ví dụ trên, máy chủ cho biết tài nguyên đã được tìm thấy, loại của nó là tài liệu HTML, đồng thời cho biết kích thước và ngày sửa đổi. Sau dòng trống là nội dung của tài liệu HTML, tức là. về cơ bản những gì khách hàng yêu cầu. Giống như yêu cầu HTTP, số lượng tiêu đề trong phản hồi HTTP có thể thay đổi tùy theo quyết định của máy chủ web.

Khi xem xét cấu trúc của một yêu cầu HTTP, khái niệm này đã được đề cập đến Phương thức yêu cầu HTTP. Phương thức yêu cầu HTTP xác định cách xử lý yêu cầu HTTP đã chỉ định, tức là. theo một nghĩa nào đó xác định ngữ nghĩa của nó. Vì các yêu cầu HTTP có thể có nhiều ý nghĩa khác nhau nên việc chỉ định phương thức là một phần quan trọng trong việc xây dựng một yêu cầu HTTP. Yêu cầu HTTP có thể có các ý nghĩa sau: yêu cầu tài nguyên từ máy chủ, tạo hoặc sửa đổi tài nguyên trên máy chủ, xóa tài nguyên trên máy chủ, v.v.

Các phương thức yêu cầu HTTP phổ biến nhất là các loại phương thức sau:

LẤY cho phép bạn nhận thông tin từ máy chủ, phần thân yêu cầu luôn trống;
CÁI ĐẦU tương tự như GET, nhưng phần thân phản hồi luôn trống, cho phép bạn kiểm tra tính khả dụng của tài nguyên được yêu cầu và đọc tiêu đề HTTP của phản hồi;
BƯU KIỆN cho phép bạn tải thông tin lên máy chủ, về bản chất nó thay đổi tài nguyên trên máy chủ, nhưng thường được sử dụng để tạo tài nguyên trên máy chủ, phần thân yêu cầu chứa tài nguyên đang được thay đổi/tạo;
ĐẶT tương tự như POST, nhưng về bản chất nó liên quan đến việc tạo ra một tài nguyên hơn là thay đổi nó, phần nội dung của yêu cầu chứa tài nguyên được tạo ra;
XÓA BỎ loại bỏ một tài nguyên khỏi máy chủ.

Ngoài các phương thức HTTP này, còn có một số lượng lớn các phương thức khác được xác định trong đặc tả giao thức HTTP. Tuy nhiên, bất chấp điều này, các trình duyệt thường chỉ sử dụng phương thức GET và POST. Tuy nhiên, các ứng dụng khác có thể tùy ý sử dụng các phương thức HTTP.

Như chúng ta đã thấy trước đó, phản hồi HTTP chứa mã trạng thái hoặc mã trả lại. Trạng thái này hiển thị trạng thái của phản hồi HTTP đã nhận được từ máy chủ. Cơ chế này là cần thiết cho hoạt động của giao thức HTTP, vì nhiều tình huống không chuẩn có thể xảy ra khi xử lý yêu cầu. Tất cả các mã trạng thái là số có ba chữ số. Ngoài ra, phản hồi HTTP có thể chứa mô tả trạng thái bằng văn bản. Tất cả các mã trạng thái được chia thành năm nhóm.

Mỗi nhóm mã trạng thái xác định tình huống mà yêu cầu được tìm thấy. Nhóm được xác định bởi chữ số đầu tiên của mã trạng thái. Ví dụ: mã trạng thái của nhóm 2xx cho biết yêu cầu HTTP thành công. Các mã trạng thái được sử dụng phổ biến nhất được hiển thị trong bảng bên dưới.

Mã số Sự miêu tả
1xx Mã thông tin
2xx Hoàn thành yêu cầu thành công
200 Yêu cầu đã được xử lý thành công
201 Đối tượng được tạo
202 Thông tin được chấp nhận
203 Thông tin không đáng tin cậy
204 Không có nội dung
205 Đặt lại nội dung
206 Nội dung một phần (ví dụ: khi "tải xuống" tệp)
3xx Chuyển hướng (cần thực hiện một số hành động để hoàn thành yêu cầu)
300 Một số tùy chọn để lựa chọn
301 Tài nguyên được di chuyển vĩnh viễn
302 Tài nguyên được di chuyển tạm thời
303 Xem tài nguyên khác
304 Nội dung không thay đổi
305 Sử dụng máy chủ proxy
4xx Vấn đề không phải ở máy chủ mà ở yêu cầu
400 Yêu cầu không hợp lệ
401 Không có quyền xem tài nguyên
402 Yêu cầu thanh toán
403 Truy cập bị từ chối
404 Không tìm thấy tài nguyên
405 Phương pháp không hợp lệ
406 Yêu cầu không phù hợp
407 Cần phải đăng ký trên máy chủ proxy
408 Đã hết thời gian xử lý yêu cầu
409 Xung đột
410 Không còn tài nguyên nữa
411 Độ dài cần thiết
412 Điều kiện tiên quyết không được đáp ứng
413 Phần tử được yêu cầu quá lớn
414 Mã định danh tài nguyên (URI) quá dài
415 Loại tài nguyên không được hỗ trợ
5xx Lỗi máy chủ
500 Lỗi máy chủ nội bộ
501 Chức năng không được thực hiện
502 Lỗi cổng
503 Dịch vụ Không sẵn có
504 Thời gian cổng đã hết hạn
505 Phiên bản HTTP không được hỗ trợ

Các mã trạng thái này và các mã trạng thái khác được sử dụng để truyền tải thông tin trạng thái yêu cầu từ máy khách đến máy chủ.

Một tính năng đặc biệt của giao thức HTTP là trong giao thức này, thông tin được truyền dưới dạng văn bản. Điều này có nghĩa là làm việc với một giao thức như vậy khá đơn giản. Ngoài ra, các kỹ sư bảo mật vẫn để giao thức HTTP mở ngay cả với chế độ bảo mật nghiêm ngặt. Do đó, việc triển khai tương tác mạng trong giao thức HTTP là một trong những lĩnh vực đầy hứa hẹn.

Tuy nhiên, mặc dù giao thức đơn giản nhưng vẫn tồn tại vấn đề rò rỉ thông tin được truyền đi. Vì thông tin được truyền dưới dạng văn bản thuần túy nên việc chặn thông tin đó khá đơn giản. Trong một số tình huống, vấn đề này không nghiêm trọng. Tuy nhiên, đối với các ứng dụng web làm việc với thông tin bí mật thì đây là một nhược điểm khá đáng kể.

Vì lý do này, có một sự sửa đổi trong giao thức này - HTTPS, I E. Giao thức HTTP có hỗ trợ mã hóa.

Như bạn đã biết, có các thuật toán mã hóa mạnh cổ điển mã hóa dữ liệu dựa trên khóa hiện có. Khóa tương tự được sử dụng để mã hóa và giải mã dữ liệu - nếu bất kỳ ai biết khóa của thông tin được mã hóa thì họ có thể giải mã nó. Khóa là một chuỗi các bit đều đặn có độ dài nhất định. Khóa càng dài thì thuật toán mã hóa càng khó phá vỡ. Vì vậy, để bảo vệ thông tin của mình, bạn cần giữ bí mật khóa mã hóa. Tuy nhiên, làm thế nào có thể đạt được điều này trong khuôn khổ tương tác thông qua giao thức HTTP? Rốt cuộc, nếu bạn truyền khóa này ở dạng văn bản rõ ràng thì ý nghĩa của mã hóa sẽ biến mất. Trong trường hợp này, một loại mã hóa bổ sung được sử dụng - bất đối xứng. Trong trường hợp này, có một cặp khóa - công khai và riêng tư. Sử dụng khóa chung, bạn chỉ có thể mã hóa thông tin và sử dụng khóa riêng, bạn có thể giải mã thông tin đó. Thông thường, với phương pháp này, khóa riêng được giữ bí mật và khóa chung được công khai. Tuy nhiên, thuật toán bất đối xứng chậm hơn thuật toán đối xứng nên nó được sử dụng để trao đổi khóa đối xứng ban đầu. Hãy xem toàn bộ thuật toán để biết cách hoạt động của kết nối HTTP được mã hóa.


Khi khách hàng liên hệ với máy chủ qua kênh bảo mật, máy chủ sẽ lưu trữ khóa chung và khóa riêng. Tại thời điểm ban đầu, máy chủ truyền khóa chung của mã hóa bất đối xứng cho máy khách. Máy khách tạo ngẫu nhiên khóa mã hóa đối xứng và mã hóa nó bằng khóa chung nhận được từ máy chủ. Sau đó, máy khách sẽ gửi khóa được mã hóa đến máy chủ và tại thời điểm này, máy khách và máy chủ có cùng khóa để mã hóa đối xứng. Tiếp theo là tương tác HTTP, được mã hóa bằng khóa đối xứng này. Khóa đối xứng được giữ bí mật và không thể bị chặn vì khóa riêng (có thể được sử dụng để giải mã tin nhắn đầu tiên chứa khóa đối xứng) vẫn được giữ bí mật trên máy chủ. Nhờ đó, tính bảo mật và toàn vẹn của dữ liệu truyền qua HTTP được đảm bảo

Bản tóm tắt ngắn gọn

Tất cả các ứng dụng web đều dựa trên giao thức HTTP. Giao thức HTTP truyền thông tin văn bản và hoạt động ở chế độ phản hồi yêu cầu. Yêu cầu HTTP và phản hồi HTTP có cấu trúc được xác định nghiêm ngặt - dòng chào mừng, tiêu đề và nội dung thư. Số lượng tiêu đề HTTP có thể thay đổi. Tiêu đề HTTP được phân tách khỏi nội dung thư bằng một dòng trống. Mọi yêu cầu HTTP được gửi đến máy chủ như một phần của phương thức HTTP. Phương thức HTTP xác định ngữ nghĩa của yêu cầu (lấy tài nguyên, thêm, thay đổi, xóa, v.v.). Trong phản hồi HTTP, ngoài thông tin dịch vụ và dữ liệu hữu ích, trạng thái yêu cầu sẽ được gửi, thông báo cho khách hàng về sự thành công của yêu cầu. Tất cả các mã trạng thái được chia thành các nhóm. Vì dữ liệu truyền qua HTTP có thể bị chặn nên không đảm bảo tính bảo mật của thông tin được truyền. Nếu mức độ bảo mật như vậy là cần thiết thì bạn cần sử dụng giao thức HTTPS, giao thức này cung cấp mã hóa thông tin được truyền đi dựa trên sự kết hợp giữa các thuật toán mã hóa đối xứng và bất đối xứng.

Xin chào các độc giả thân mến của trang blog. Khi nghiên cứu cơ chế chịu trách nhiệm cho hoạt động chính xác của Internet, không thể tránh khỏi nhu cầu dành thời gian cho các khía cạnh chính của nó, chắc chắn bao gồm giao thức truyền dữ liệu HTTP và phiên bản bảo mật HTTPS của nó.

Cơ sở hoạt động của công cụ này, cho phép trình duyệt của người dùng mở các tệp và tài liệu cần thiết để lấy thông tin, là công nghệ “máy khách-máy chủ”, chi tiết về công cụ này sẽ được thảo luận trong bài viết dưới đây.

Tất nhiên, những người muốn thực sự cống hiến hoạt động của mình để làm việc với mạng máy tính và phát triển các chương trình mạng cần phải nghiên cứu vấn đề này ở mức tối đa để có được bằng cấp phù hợp. Nhưng chúng tôi không cần điều này.

Điều chính là phải hiểu HTTP nói chung là gì và các tính năng chính của HTTPS là gì, cũng như hiểu các nguyên tắc cơ bản được nhúng trong chúng. Kiến thức như vậy sẽ hữu ích, trong số những thứ khác, để tối ưu hóa và quảng bá trang web của bạn, bạn sẽ nhận được xác nhận vô điều kiện về điều này từ bài viết này và các bài viết tiếp theo về chủ đề này.

HTTP là gì và nó hoạt động như thế nào?

Để có được tài liệu mong muốn trên Internet, người dùng chỉ cần nhập URL mong muốn vào thanh tìm kiếm của trình duyệt (thêm về cấu trúc URL), thanh này chỉ chứa tên của giao thức HTTP (hoặc HTTPS).

3. HTTP/Phiên bản- sự sửa đổi hiện tại của giao thức được chỉ định. Hiện tại nó là HTTP 1.1 (bạn có thể đọc thông số kỹ thuật của nó). Tuy nhiên, phiên bản tiếp theo của giao thức 2.0 đã tồn tại ở dạng bản nháp, dựa trên .

Dòng dưới cùng thể hiện Tiêu đề máy chủ như một phần của yêu cầu HTTP được trình duyệt gửi đến máy chủ theo IP nhận được từ DNS. Cái này để làm gì? Để xác định trang web mong muốn, vì máy chủ web thường lưu trữ nhiều tài nguyên.

Hãy xem một ví dụ rõ ràng để củng cố những gì chúng ta đã học được. Giả sử trình duyệt nhận được “tác vụ” từ người dùng để hiển thị một trang có địa chỉ sau:

Http://subscribe.ru/group/

Sau đó, một yêu cầu HTTP sử dụng phương thức GET có thể được soạn như sau (trong trường hợp này thường không có nội dung thư):

GET /group/ HTTP/1.1 Máy chủ: subscribe.ru

Để rõ ràng, tôi chỉ cung cấp một ví dụ rất đơn giản, bao gồm một tiêu đề Máy chủ; trên thực tế, có thể có một vài tiêu đề như vậy. Nhưng đó không phải là tất cả. Xét cho cùng, giao tiếp đầy đủ cần có một cuộc đối thoại, được thiết lập sau khi máy chủ phản hồi yêu cầu của trình duyệt. Dòng đầu tiên của phản hồi cũng có thể được mô tả dưới dạng sơ đồ:

Giải thích mã trạng thái HTTP/phiên bản

Bây giờ chúng ta hãy xem xét ngắn gọn thành phần phản hồi của máy chủ:

1. Phiên bản HTTPđược biểu thị bằng sự tương tự với yêu cầu.

2. Mã trạng thái(Mã trạng thái) - ba số thông báo về trạng thái của tài liệu được trình duyệt yêu cầu. Ví dụ: 200 - OK, trang tồn tại và sẽ được hiển thị trong trình duyệt, 301 - chuyển hướng đã được thực hiện tới một URL khác, - không có trang web nào tại địa chỉ đó (có thể nó đã bị xóa hoặc người dùng đã nhầm lẫn khi nhập URL).

3. Giải trình(Cụm từ lý do) - văn bản bổ sung vào mã phản hồi. Trong một số trường hợp, lời giải thích có thể khác với tiêu chuẩn hoặc hoàn toàn không có. Điều này cũng là do cấu hình của phần mềm được lưu trữ trên máy chủ.

Ví dụ thực tế? Vui lòng. Hãy thử nhận phản hồi của máy chủ đối với yêu cầu mà tôi đưa ra như ví dụ ở trên (url “http://subscribe.ru/group/”). Nó sẽ trông như thế này (dòng tiêu đề ban đầu):

HTTP/1.1 200 OK Máy chủ: nginx Ngày: Thứ bảy, ngày 10 tháng 6 năm 2017 06:36:38 GMT Loại nội dung: text/html; charset=utf-8 Kết nối: duy trì Ngôn ngữ nội dung: ru Set-Cookie: Đăng ký::Viziter=UQkivlk7k3YO3DgjAxM2Ag==; hết hạn=Thứ Năm, ngày 31 tháng 12, 37 23:55:55 GMT; tên miền=đăng ký.ru; path=/ P3P: Policyref="/w3c/p3p.xml", CP="NOI PSA UNI BUS CỦA CHÚNG TÔI"

Trong trường hợp này, không có phần giải thích và nội dung thông báo, chẳng hạn như khi sử dụng phương thức GET, có thể chứa mã HTML của tài liệu được yêu cầu (trang web). Tùy thuộc vào loại ứng dụng khách, các phần này có thể xuất hiện.

Vì vậy, hãy tóm tắt ngắn gọn những điều trên. Nếu người dùng nhập URL của trang mình đang tìm kiếm với ý định lấy nội dung của trang đó để xem, trình duyệt sẽ gửi yêu cầu GET đến máy chủ mong muốn và nhận được phản hồi. Kết quả của việc liên lạc này là (trong những trường hợp thuận lợi) nội dung của tài liệu được yêu cầu sẽ được hiển thị hoặc không.

Trong mọi trường hợp, nội dung phản hồi HTTP của máy chủ (bao gồm mã trạng thái) có thể cung cấp thông tin hữu ích liên quan đến tài liệu được yêu cầu.

Để thông tin trên dễ dàng phù hợp với câu đố, thiếu một ví dụ cụ thể. Chúng ta sẽ xem xét nó bằng cách sử dụng một trong những (trình duyệt web này là công cụ làm việc của tôi) có tên là Tiêu đề HTTP.

Nó thuận tiện vì nó cung cấp một bức tranh hoàn chỉnh về tương tác giữa máy khách và máy chủ, cung cấp nội dung trong “một chai” Yêu cầu HTTP (yêu cầu) và phản hồi (phản hồi). Hãy xem tài liệu mà plugin này tạo ra khi theo liên kết từ trang này đến trang khác trong blog của tôi:


Ở trên cùng là phương thức GET, phương thức này trình duyệt truy cập vào máy chủ, cũng như trạng thái của trang, được đánh dấu bằng mã trạng thái 200 OK, cho biết rõ rằng máy chủ đã truyền tất cả dữ liệu liên quan đến yêu cầu trang web.

Cũng quan tâm Tiêu đề HTTP, hiển thị bên dưới. Ví dụ, mục "Người giới thiệu" cung cấp thông tin dưới dạng URL nơi quá trình chuyển đổi được thực hiện.

Phần mở đầu "Đại lý người dùng" phản ánh chính xác ứng dụng khách đã gửi yêu cầu đến máy chủ web. Trong trường hợp này, đây là một trình duyệt, nhưng có thể có những trình duyệt khác (thiết bị di động, robot tìm kiếm, v.v.). Dữ liệu được trình bày trong Tác nhân người dùng là cần thiết để phần mềm máy chủ xác định ứng dụng gửi yêu cầu.

Chỉ bot công cụ tìm kiếm, quét các trang trên trang web để lấy thông tin ảnh hưởng đến xếp hạng, là mối quan tâm hàng đầu của chúng tôi, bởi vì chính chúng là người quyết định số phận của một trang cụ thể xét về hiệu quả quảng cáo của nó.

Đó là lý do tại sao trong ấn phẩm tiếp theo, tôi dự định trình bày chi tiết hơn về cách xem tiêu đề HTTP và kiểm tra mã phản hồi của máy chủ dành riêng cho yêu cầu của robot, điều này cực kỳ quan trọng đối với quản trị viên web trong bối cảnh tối ưu hóa tài nguyên SEO. Vì vậy, hãy đăng ký để nhận được bài viết mới nhất một cách kịp thời.

Giao thức HTTPS bảo mật có gì đặc biệt?

Tôi chắc chắn rằng tất cả người dùng Internet, không có ngoại lệ, kể cả người mới bắt đầu, đều biết đến sự tồn tại của một giao thức đặc biệt có tên HTTPS (Bảo mật giao thức truyền siêu văn bản), dùng để bảo vệ dữ liệu cá nhân trên các dịch vụ sử dụng chuyển khoản của họ (hệ thống thanh toán, trực tuyến). cửa hàng, cổng thông tin chuyên dụng lớn, v.v.). d.).

Nếu bạn nhập địa chỉ trang của một trang tương tự, kết nối này sẽ được biểu thị theo cách đặc biệt. Ví dụ: trong Google Chrome (), sẽ hiển thị một ổ khóa có dòng chữ “Trusted” màu xanh lá cây, khi nhấp vào nó bạn sẽ thấy một số thông tin liên quan đến việc bảo vệ dữ liệu cá nhân:


HTTPS là gì? Nói đúng ra, nó không phải là một giao thức độc lập. Đây là HTTP tiêu chuẩn, hoạt động thông qua cơ chế TLS hoặc SSL, có khả năng đảm bảo mã hóa, ngăn chặn tin tặc đánh chặn và lấy dữ liệu bí mật.

Theo mặc định, khi vận hành một giao thức bảo mật, cổng 443 được sử dụng (nếu bạn còn nhớ, đối với HTTP tiêu chuẩn thì cổng này là 80). Mã hóa HTTPS sử dụng độ dài khóa là 40, 56, 128 và 256 bit (). Tuy nhiên, thậm chí không nên xem xét hai tùy chọn đầu tiên vì chúng không thể cung cấp đủ mức độ bảo mật.

Gần đây, các công cụ tìm kiếm, đặc biệt là Google, đã tích cực thuyết phục chủ sở hữu của tất cả các trang web chuyển sang giao thức bảo mật, ám chỉ một cách tinh tế rằng điểm này sẽ được tính đến khi xếp hạng. Kết quả là, hiện nay nhiều tài nguyên (thậm chí cả các blog thông thường) chứ không chỉ các trang web liên quan chặt chẽ đến việc truyền dữ liệu cá nhân đã hoạt động với HTTPS.

Hơn nữa, các nhà cung cấp dịch vụ lưu trữ hàng đầu cung cấp việc mua chứng chỉ SSL an toàn, chứng chỉ này cần thiết để kích hoạt kết nối an toàn.

Tất nhiên, chúng tôi chưa xem xét tất cả các sắc thái của việc sử dụng giao thức HTTP (HTTPS), trong đó có rất nhiều sắc thái. Chủ đề này có thể cần đến một số sách hướng dẫn ấn tượng. Tuy nhiên, các khía cạnh chính sẽ hữu ích cho cả người dùng nâng cao và quản trị trang web đều được đề cập. Nếu vẫn chưa hài lòng với lượng thông tin nhận được, bạn có thể dễ dàng bổ sung từ video bài giảng sau, đặc biệt là nói chi tiết hơn về các phương pháp:

Chúng tôi đã phát hành một cuốn sách mới, Tiếp thị nội dung trên mạng xã hội: Cách thu hút người theo dõi và khiến họ yêu thích thương hiệu của bạn.

Đặt mua

HTTP là thứ cho phép truyền dữ liệu. Ban đầu, nó được tạo ra để gửi và nhận tài liệu có chứa các liên kết bên trong nhằm thực hiện chuyển đổi sang tài nguyên của bên thứ ba.

Chữ viết tắt có nghĩa là “Giao thức truyền siêu văn bản”, được dịch có nghĩa là “giao thức truyền tải”. HTTP thuộc nhóm lớp ứng dụng dựa trên các chi tiết cụ thể được OSI sử dụng.

Để hiểu rõ hơn ý nghĩa của HTTP, chúng ta hãy xem xét một sự tương tự đơn giản. Hãy tưởng tượng rằng bạn đang giao tiếp với một người nước ngoài trên mạng xã hội. Anh ấy gửi cho bạn một tin nhắn bằng tiếng Anh, bạn nhận được nó. Nhưng bạn không thể hiểu được nội dung vì bạn nói ngôn ngữ không tốt. Để giải mã thông điệp, hãy sử dụng từ điển. Đã hiểu bản chất, bạn trả lời người nước ngoài bằng tiếng Nga và gửi câu trả lời. Người nước ngoài nhận được câu trả lời và với sự trợ giúp của người phiên dịch, sẽ giải mã được thông điệp. Để đơn giản hóa toàn bộ cơ chế, các giao thức Internet HTTP thực hiện chức năng của một trình dịch. Với sự trợ giúp của họ, trình duyệt có thể dịch nội dung được mã hóa của các trang web và hiển thị nội dung của chúng.

HTTP để làm gì?

Giao thức HTTP được sử dụng để trao đổi thông tin bằng mô hình máy khách-máy chủ. Máy khách soạn và truyền yêu cầu đến máy chủ, sau đó máy chủ xử lý và phân tích nó, sau đó phản hồi được tạo và gửi cho người dùng. Khi kết thúc quá trình này, máy khách sẽ đưa ra một lệnh mới và mọi thứ sẽ lặp lại.

Do đó, giao thức HTTP cho phép bạn trao đổi thông tin giữa các ứng dụng người dùng khác nhau và các máy chủ web đặc biệt, cũng như kết nối với các tài nguyên web (thường là trình duyệt). Ngày nay, giao thức được mô tả đảm bảo hoạt động của toàn bộ mạng. Giao thức truyền dữ liệu HTTP cũng được sử dụng để truyền thông tin qua các giao thức cấp thấp hơn khác, ví dụ: WebDAV hoặc SOAP. Trong trường hợp này, giao thức là một phương tiện vận chuyển. Nhiều chương trình cũng dựa vào HTTP làm công cụ chính để trao đổi thông tin. Dữ liệu được trình bày ở nhiều định dạng khác nhau, ví dụ: JSON hoặc XML.

HTTP là một giao thức trao đổi thông tin qua kết nối IP/TCP. Thông thường, máy chủ sử dụng cổng TCP 80 cho mục đích này. Nếu cổng không được chỉ định, phần mềm máy khách sẽ sử dụng cổng loại TCP 80 theo mặc định. Trong một số trường hợp, các cổng khác có thể được sử dụng.

Giao thức HTTP sử dụng sơ đồ mã hóa đối xứng và sử dụng các hệ thống mật mã đối xứng. Hệ thống mật mã đối xứng liên quan đến việc sử dụng cùng một khóa để mã hóa và giải mã thông tin.

Sự khác biệt giữa HTTP và HTTPS là gì

Sự khác biệt có thể được phát hiện ngay cả từ việc giải mã các chữ viết tắt. HTTPS là viết tắt của Bảo mật giao thức truyền siêu văn bản. Do đó, HTTP là một giao thức độc lập và HTTPS là phần mở rộng để bảo vệ nó. HTTP truyền thông tin không được bảo vệ, trong khi HTTPS cung cấp bảo vệ bằng mật mã. Điều này đặc biệt đúng đối với các tài nguyên được ủy quyền có trách nhiệm. Đây có thể là mạng xã hội hoặc trang web hệ thống thanh toán.

Sự nguy hiểm của việc truyền dữ liệu không được bảo vệ là gì? Một chương trình đánh chặn có thể chuyển chúng cho kẻ tấn công bất cứ lúc nào. HTTPS có một tổ chức kỹ thuật phức tạp cho phép bạn bảo vệ thông tin một cách đáng tin cậy và loại bỏ khả năng truy cập trái phép vào thông tin đó. Sự khác biệt nằm ở các cổng. HTTPS thường hoạt động trên cổng 443.

Do đó, HTTP được sử dụng để truyền dữ liệu và HTTPS cho phép truyền dữ liệu an toàn bằng cách sử dụng mã hóa và ủy quyền trên các tài nguyên có mức độ bảo mật cao.

Chức năng bổ sung

HTTP rất giàu chức năng và tương thích với nhiều tiện ích mở rộng khác nhau. Thông số kỹ thuật 1.1 được sử dụng ngày nay cho phép tiêu đề Nâng cấp được sử dụng để chuyển đổi và hoạt động thông qua các giao thức khác khi trao đổi dữ liệu. Để thực hiện việc này, người dùng phải gửi yêu cầu đến máy chủ có tiêu đề này. Nếu máy chủ cần chuyển sang một sàn giao dịch cụ thể bằng giao thức khác, nó sẽ trả về một yêu cầu cho máy khách, hiển thị trạng thái “Yêu cầu nâng cấp 426”.

Tính năng này đặc biệt phù hợp để trao đổi thông tin qua WebSocket (có đặc tả RFC 6455, cho phép bạn trao đổi dữ liệu bất kỳ lúc nào mà không cần các yêu cầu HTTP không cần thiết). Để di chuyển sang WebSocket, một người dùng sẽ gửi yêu cầu có tiêu đề Nâng cấp và giá trị “websocket”. Tiếp theo, máy chủ phản hồi với “101 Giao thức chuyển mạch”. Sau thời điểm này, quá trình truyền thông tin qua WebSocket bắt đầu.

Giao thức truyền siêu văn bản HTTP (RFC 1945, 2068) được thiết kế để truyền tài liệu siêu văn bản từ máy chủ sang máy khách. Giao thức HTTP là một giao thức lớp ứng dụng. Theo RFC, giao thức truyền tải của nó phải là giao thức hướng kết nối để truyền dữ liệu một cách đáng tin cậy và không bảo toàn ranh giới giữa các tin nhắn. Trong thực tế, trong phần lớn các trường hợp, giao thức truyền tải cho HTTP là TCP, với máy chủ HTTP (máy chủ Web) đang chờ kết nối từ phía máy khách, tiêu chuẩn trên cổng TCP 80 và máy khách HTTP (trình duyệt Web) đang khởi tạo sự kết nối.

Trong thuật ngữ Web, mọi thứ mà người dùng có thể truy cập - tài liệu, hình ảnh, chương trình - đều được gọi là tài nguyên. Mỗi tài nguyên có một địa chỉ duy nhất cho Web, được gọi là mã định danh tài nguyên phổ quát (URI - Universal Resource Identifier). Trong trường hợp chung nhất, URI trông như thế này:

giao thức://user:password@host:port/path/file?paremeters#fragment

Các trường URI riêng lẻ có ý nghĩa như sau:

giao thức - giao thức ứng dụng thông qua đó tài nguyên được truy cập;

người dùng - người dùng thay mặt họ truy cập tài nguyên hoặc chính người dùng đó làm tài nguyên;

mật khẩu - mật khẩu người dùng để xác thực khi truy cập tài nguyên;

máy chủ - địa chỉ IP hoặc tên của máy chủ chứa tài nguyên;

cổng - số cổng mà máy chủ đang chạy, cung cấp quyền truy cập vào tài nguyên;

đường dẫn - đường dẫn đến tệp chứa tài nguyên;

tập tin - tập tin chứa tài nguyên;

tham số - tham số để xử lý bởi chương trình tài nguyên;

đoạn - điểm trong tệp bắt đầu từ đó tài nguyên sẽ được hiển thị.

Sự tương tác giữa máy khách và máy chủ Web được thực hiện bằng cách trao đổi tin nhắn. Thông báo HTTP được chia thành các yêu cầu của máy khách tới máy chủ và phản hồi của máy chủ đối với máy khách.

Tin nhắn yêu cầu và phản hồi có định dạng chung. Cả hai loại thông báo đều trông giống như sau: đầu tiên là dòng bắt đầu, sau đó có thể là một hoặc nhiều trường tiêu đề, còn được gọi đơn giản là tiêu đề, sau đó là một dòng trống (nghĩa là một dòng bao gồm các ký tự CR và LF), biểu thị cuối các trường tiêu đề và sau đó có thể là nội dung thư:

dòng đầu

trường tiêu đề 1

trường tiêu đề 2

trường tiêu đề N

nội dung tin nhắn

Các định dạng dòng ban đầu của máy khách và máy chủ khác nhau và sẽ được thảo luận dưới đây. Có bốn loại tiêu đề:

các tiêu đề chung, có thể xuất hiện trong cả yêu cầu và phản hồi;

tiêu đề yêu cầu, chỉ có thể xuất hiện trong yêu cầu;

tiêu đề phản hồi, chỉ có thể xuất hiện trong phản hồi;

tiêu đề thực thể, tham chiếu đến nội dung của thông báo và mô tả nội dung của nó.

Mỗi tiêu đề bao gồm một tiêu đề, một ký tự dấu hai chấm :// và một giá trị. Các tiêu đề quan trọng nhất được hiển thị trong bảng. 1.

Bảng 1

Tiêu đề giao thức HTTP

Phần mở đầu

Mục đích

Tiêu đề đối tượng

Liệt kê các phương thức được máy chủ hỗ trợ

Mã hóa nội dung

Cách mã hóa nội dung thư, ví dụ như để giảm kích thước

Độ dài tin nhắn tính bằng byte

Loại nội dung và có thể một số tham số

Thẻ tài nguyên duy nhất trên máy chủ cho phép bạn so sánh các tài nguyên

Ngày và giờ tài nguyên trên máy chủ sẽ thay đổi và cần được truy xuất lại

Ngày và giờ nội dung được sửa đổi lần cuối

Tiêu đề phản hồi

Số giây sau đó yêu cầu phải được lặp lại để có được nội dung mới

URI của tài nguyên cần truy cập để lấy nội dung

Ngày và giờ hoặc số giây sau đó yêu cầu phải được lặp lại để nhận được phản hồi thành công

Tên của phần mềm máy chủ đã gửi phản hồi

Tiêu đề yêu cầu

Các loại nội dung mà khách hàng "hiểu" và có thể chơi

Mã hóa ký tự trong đó khách hàng có thể chấp nhận nội dung văn bản

Cách máy chủ có thể mã hóa tin nhắn

Số máy chủ và cổng mà tài liệu được yêu cầu

Nếu-Sửa đổi-Kể từ

Nếu-Chưa sửa đổi-Kể từ

Tiêu đề yêu cầu để truy cập tài nguyên có điều kiện

Yêu cầu một phần của tài liệu

Tên phần mềm máy khách

Tiêu đề chung

Cho biết máy chủ đóng hoặc duy trì phiên

Ngày và giờ tin nhắn được tạo

Bạn có thể tìm thấy mô tả chi tiết về tiêu đề HTTP/1.0 trong RFC 2068.

Phần nội dung của tin nhắn chứa thông tin thực tế được truyền đi—tải trọng của tin nhắn. Phần thân của tin nhắn là một chuỗi các octet (byte). Ví dụ: phần nội dung của tin nhắn có thể được mã hóa để giảm lượng thông tin được truyền đi và phương thức mã hóa được chỉ định trong tiêu đề của đối tượng Mã hóa nội dung.

Một thông báo yêu cầu từ máy khách đến máy chủ bao gồm một dòng yêu cầu, các tiêu đề (chung, yêu cầu, đối tượng) và có thể là nội dung thông báo. Dòng yêu cầu bắt đầu bằng phương thức, theo sau là mã định danh của tài nguyên được yêu cầu, phiên bản giao thức và các ký tự cuối dòng ở cuối:

<Метод> <Идентификатор> <Версия HTTP>

Phương thức này chỉ định lệnh giao thức HTTP để áp dụng cho tài nguyên được yêu cầu. Ví dụ: phương thức GET chỉ ra rằng máy khách muốn truy xuất nội dung của tài nguyên. Mã định danh xác định tài nguyên đang được yêu cầu. Phiên bản HTTP được biểu thị bằng một dòng như thế này:

HTTP/<версия>.<подверсия>

RFC 2068 giới thiệu giao thức HTTP/1.1.

Hãy xem xét các phương thức chính của giao thức HTTP.

Phương thức OPTIONS yêu cầu thông tin về các tùy chọn kết nối (ví dụ: phương thức, loại tài liệu, mã hóa) mà máy chủ hỗ trợ cho tài nguyên được yêu cầu. Phương pháp này cho phép khách hàng chỉ định các tùy chọn và/hoặc yêu cầu liên quan đến tài nguyên hoặc khả năng của máy chủ mà không thực hiện bất kỳ hành động nào đối với tài nguyên hoặc khiến tài nguyên được tải.

Nếu phản hồi của máy chủ không phải là thông báo lỗi thì tiêu đề đối tượng sẽ chứa thông tin có thể được coi là tùy chọn kết nối. Ví dụ: tiêu đề Cho phép liệt kê tất cả các phương thức được máy chủ hỗ trợ cho một tài nguyên nhất định.

Nếu mã định danh tài nguyên được yêu cầu là dấu hoa thị (“*”) thì yêu cầu OPTIONS nhằm mục đích giải quyết toàn bộ máy chủ.

Nếu ID tài nguyên được yêu cầu không phải là dấu hoa thị thì yêu cầu OPTIONS sẽ áp dụng cho các tùy chọn có sẵn khi kết nối với tài nguyên được chỉ định.

Phương thức GET cho phép bạn lấy bất kỳ thông tin nào liên quan đến tài nguyên được yêu cầu. Trong hầu hết các trường hợp, nếu ID tài nguyên được yêu cầu trỏ đến một tài liệu (ví dụ: tài liệu HTML, tài liệu văn bản, đồ họa, video) thì máy chủ sẽ trả về nội dung của tài liệu đó (nội dung tệp). Nếu tài nguyên được yêu cầu là một ứng dụng (chương trình) tạo ra một số dữ liệu trong quá trình hoạt động thì dữ liệu này sẽ được trả về trong phần nội dung của thông báo phản hồi chứ không phải hình ảnh nhị phân của tệp thực thi. Điều này được sử dụng, ví dụ, khi tạo các ứng dụng CGI. Nếu mã định danh của tài nguyên được yêu cầu trỏ đến một thư mục (thư mục, thư mục), thì tùy thuộc vào cài đặt máy chủ, nội dung của thư mục (danh sách tệp) hoặc nội dung của một trong các tệp nằm trong thư mục này (thường là index.html hoặc Default.htm). Khi được nhắc về một thư mục, tên của nó có thể được biểu thị bằng hoặc không bằng dấu "/" ở cuối. Nếu ký tự này không xuất hiện ở cuối mã định danh tài nguyên thì máy chủ sẽ đưa ra một trong các phản hồi chuyển hướng (với mã trạng thái 301 hoặc 302).

Một biến thể của phương thức GET là "GET có điều kiện", trong đó thông báo yêu cầu bao gồm các tiêu đề yêu cầu If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match hoặc If-Range. Phương thức GET có điều kiện chỉ yêu cầu truyền một đối tượng nếu nó đáp ứng các điều kiện được mô tả trong các tiêu đề đã cho. Ví dụ: nếu có tiêu đề If-Modified-Since, nội dung của tài nguyên được yêu cầu sẽ chỉ được truy xuất nếu chúng không thay đổi kể từ thời điểm được chỉ định làm giá trị của tiêu đề này. Phương thức GET có điều kiện nhằm mục đích giảm tải mạng không cần thiết, vì nó tránh tải lại dữ liệu đã được máy khách lưu.

Ngoài ra còn có "NHẬN một phần" trong đó thông báo yêu cầu bao gồm tiêu đề Yêu cầu phạm vi. GET một phần yêu cầu chỉ một phần của đối tượng được chuyển. Phương thức GET một phần được thiết kế để giảm chi phí mạng không cần thiết bằng cách chỉ yêu cầu một phần của đối tượng khi phần khác đã được khách hàng tải xuống. Giá trị của tiêu đề Phạm vi là chuỗi "bytes=" theo sau là phạm vi byte cần truy xuất. Các byte được đánh số bắt đầu từ 0. Các byte bắt đầu và kết thúc của dải ô được phân tách bằng ký tự “–”. Cả byte bắt đầu và kết thúc trong phạm vi có thể bị thiếu. Nếu bạn cần lấy một số phạm vi, chúng sẽ được liệt kê cách nhau bằng dấu phẩy. Nếu một số phạm vi được liệt kê giao nhau, máy chủ sẽ hợp nhất chúng. Thông báo phản hồi cho yêu cầu GET một phần phải chứa tiêu đề Phạm vi nội dung chỉ định phạm vi cần chuyển. Nếu máy chủ gửi nhiều phạm vi không chồng chéo, tiêu đề Kiểu nội dung sẽ nhận giá trị đặc biệt "nhiều phần/dải byte". Nội dung của thư được chia thành các phần được phân tách bằng dấu phân cách do máy chủ tạo và được chuyển dưới dạng tham số tiêu đề Kiểu nội dung. Mỗi phần riêng lẻ chứa các tiêu đề Loại nội dung và Phạm vi nội dung riêng, với một dòng trống trước nội dung phạm vi.

Phương thức HEAD giống hệt với GET, ngoại trừ việc máy chủ không trả về nội dung thư trong phản hồi. Thông tin chứa trong tiêu đề phản hồi HTTP cho yêu cầu HEAD giống hệt với thông tin được cung cấp để phản hồi yêu cầu GET cho cùng một tài nguyên. Phương pháp này có thể được sử dụng để lấy thông tin về một đối tượng yêu cầu mà không cần truyền trực tiếp vào phần thân của đối tượng. Phương thức HEAD có thể được sử dụng để kiểm tra các liên kết siêu văn bản.

Phương thức POST được sử dụng cho một yêu cầu trong đó máy chủ có địa chỉ chấp nhận dữ liệu có trong nội dung (đối tượng) thông báo yêu cầu và gửi nó đến ứng dụng được chỉ định làm tài nguyên được yêu cầu để xử lý. POST được thiết kế để triển khai các chức năng sau một cách tổng quát:

chú thích các tài nguyên hiện có;

đăng tin nhắn lên hệ thống bảng thông báo (BBS), nhóm tin, danh sách gửi thư hoặc nhóm bài báo tương tự;

chuyển một khối dữ liệu, ví dụ như kết quả của dữ liệu đầu vào dưới dạng biểu mẫu, sang quy trình xử lý;

thực hiện các truy vấn tới cơ sở dữ liệu (DB);

Trên thực tế, chức năng được thực hiện bằng phương thức POST được xác định bởi ứng dụng được trỏ đến bởi ID tài nguyên được yêu cầu. Cùng với phương thức GET, phương thức POST được sử dụng khi tạo các ứng dụng CGI. Trình duyệt có thể đưa ra yêu cầu bằng phương thức POST khi gửi biểu mẫu. Để thực hiện việc này, phần tử FORM của tài liệu HTML chứa biểu mẫu phải có thuộc tính phương thức có giá trị POST.

Một ứng dụng do POST khởi tạo có thể thực hiện một hành động trên máy chủ và kết quả là không trả về bất kỳ nội dung nào. Tùy thuộc vào việc phản hồi có bao gồm nội dung thông báo mô tả kết quả hay không, mã trạng thái trong phản hồi có thể là 200 (OK) hoặc 204 (Không có nội dung).

Nếu tài nguyên trên máy chủ đã được tạo thì phản hồi sẽ chứa mã trạng thái 201 (Đã tạo) và bao gồm tiêu đề phản hồi Vị trí.

Nội dung của tin nhắn được gửi trong yêu cầu PUT được lưu trữ trên máy chủ và mã định danh của tài nguyên được yêu cầu sẽ là mã định danh của tài liệu được lưu trữ. Nếu mã định danh tài nguyên được yêu cầu trỏ đến một tài nguyên đã tồn tại thì đối tượng có trong nội dung thư sẽ được coi là phiên bản sửa đổi của tài nguyên nằm trên máy chủ. Nếu một tài nguyên mới đã được tạo, máy chủ sẽ thông báo cho tác nhân người dùng bằng cách phản hồi bằng mã trạng thái 201 (Đã tạo).

Sự khác biệt giữa phương thức POST và PUT là giá trị ID khác nhau của tài nguyên được yêu cầu. URI trong yêu cầu POST xác định tài nguyên xử lý đối tượng có trong nội dung thư. Tài nguyên này có thể là ứng dụng nhận dữ liệu. Ngược lại, URI trong yêu cầu PUT xác định thực thể có trong yêu cầu là nội dung của thông báo, nghĩa là tác nhân người dùng chỉ định URI đã cho cho tài nguyên được bao gồm.

Phương thức DELETE yêu cầu máy chủ xóa tài nguyên có ID được yêu cầu. Yêu cầu bằng phương pháp này có thể bị máy chủ từ chối nếu người dùng không có quyền xóa tài nguyên được yêu cầu.

Phương thức TRACE được sử dụng để trả về yêu cầu đã truyền ở cấp giao thức HTTP. Người nhận yêu cầu (máy chủ Web) gửi tin nhắn đã nhận trở lại máy khách dưới dạng nội dung của tin nhắn phản hồi với mã trạng thái 200 (OK). Yêu cầu TRACE không được chứa nội dung thư.

TRACE cho phép khách hàng xem máy chủ đang nhận được gì ở đầu bên kia và sử dụng dữ liệu này để kiểm tra hoặc chẩn đoán.

Nếu yêu cầu thành công, phản hồi sẽ chứa toàn bộ thông báo yêu cầu trong nội dung của thông báo phản hồi và tiêu đề đối tượng Kiểu-Nội dung là "tin nhắn/http".

Thông tin chi tiết về các phương thức giao thức HTTP/1.1 có thể được tìm thấy trong RFC 2068.

Sau khi nhận và giải thích thông báo yêu cầu, máy chủ sẽ phản hồi bằng thông báo phản hồi HTTP.

Dòng đầu tiên của phản hồi là Dòng trạng thái. Nó bao gồm phiên bản giao thức, mã trạng thái dạng số, cụm từ giải thích, được phân tách bằng dấu cách và các ký tự cuối dòng ở cuối:

<Версия HTTP> <Код состояния> <Поясняющая фраза>

Phiên bản giao thức có ý nghĩa tương tự như trong yêu cầu.

Phần tử Mã trạng thái là mã số nguyên gồm ba chữ số (ba chữ số) cho kết quả hiểu và đáp ứng yêu cầu. Lý do-Cụm từ là một mô tả văn bản ngắn về mã trạng thái. Mã trạng thái nhằm mục đích xử lý phần mềm và cụm từ giải thích dành cho người dùng.

Chữ số đầu tiên của mã trạng thái xác định loại phản hồi. Hai chữ số cuối không có vai trò cụ thể trong việc phân loại. Có 5 ý nghĩa cho chữ số đầu tiên:

1xx: Mã thông tin – đã nhận yêu cầu, tiếp tục xử lý.

2xx: Mã thành công - hành động đã được nhận, hiểu và xử lý thành công.

3xx: Mã chuyển hướng - phải thực hiện thêm hành động để hoàn thành yêu cầu.

4xx: Mã lỗi máy khách - yêu cầu có lỗi cú pháp hoặc không thể hoàn thành.

5xx: Mã lỗi máy chủ - Máy chủ không thể hoàn thành yêu cầu hợp lệ.

Các cụm từ giải thích cho từng mã trạng thái được liệt kê trong RFC 2068 và được khuyến nghị nhưng có thể được thay thế bằng các cụm từ tương đương mà không bị hạn chế về giao thức. Ví dụ: trong các phiên bản tiếng Nga được bản địa hóa của máy chủ HTTP, các cụm từ này được thay thế bằng cụm từ tiếng Nga. Trong bảng 2 hiển thị mã phản hồi của máy chủ HTTP.

ban 2

Mã phản hồi của máy chủ HTTP

Cụm từ giải thích theo

1xx: Mã thông tin

Tiếp tục

2xx: Mã thành công

Không có nội dung

Đặt lại nội dung

Nội dung một phần

Nội dung một phần

3xx: Mã chuyển hướng

Đã di chuyển tạm thời

Tạm thời di chuyển

Không được sửa đổi

4xx: Mã lỗi máy khách

Yêu cầu xấu

Không được phép

Không tìm thấy

Phương pháp không được phép

Phương pháp không được phép

Hết thời gian yêu cầu

Yêu cầu đã hết thời gian

Xung đột

Độ dài yêu cầu

Độ dài cần thiết

Thực thể yêu cầu quá lớn

Đối tượng yêu cầu quá lớn

Cuối bàn. 2

Cụm từ giải thích theo

Cụm từ giải thích tương đương bằng tiếng Nga

5xx: Mã lỗi máy chủ

Lỗi máy chủ nội bộ

Lỗi máy chủ nội bộ

Không được thực hiện

Không được thực hiện

dịch vụ Không sẵn có

Dịch vụ không sẵn sàng

Phiên bản HTTP không được hỗ trợ

Phiên bản HTTP không được hỗ trợ

Thông tin chi tiết về mã phản hồi và tiêu đề đi kèm các phản hồi này có thể được tìm thấy trong RFC 2068.

Dòng trạng thái được theo sau bởi các tiêu đề (chung, phản hồi và đối tượng) và có thể là nội dung thư.

Một trong những chức năng quan trọng nhất của máy chủ Web là cung cấp quyền truy cập vào một phần của hệ thống tệp cục bộ. Để thực hiện việc này, một thư mục nhất định được chỉ định trong cài đặt máy chủ, đây là thư mục gốc cho máy chủ Web này. Để xuất bản một tài liệu, nghĩa là cung cấp tài liệu đó cho những người dùng “truy cập” máy chủ này (kết nối với nó qua HTTP), bạn cần sao chép tài liệu này vào thư mục gốc của máy chủ Web hoặc vào một trong các thư mục con của nó. Khi kết nối qua HTTP, một quy trình được tạo trên máy chủ với các quyền của người dùng, theo quy định, quy trình này không thực sự tồn tại mà được tạo đặc biệt để xem tài nguyên máy chủ. Bằng cách định cấu hình quyền và quyền của một người dùng nhất định, bạn có thể kiểm soát quyền truy cập vào tài nguyên Web.