HTTP là gì? Yêu cầu, Phản hồi, Phương thức và HTTPS

HTTP là gì? Yêu cầu, Phản hồi, Phương thức và HTTPS

Scrapeless Web Unlocker truy xuất nội dung web công khai thông qua một API trong khi ứng dụng của bạn quyết định cách xác thực và xử lý từng kết quả.

Tóm tắt

  • HTTP định nghĩa ngữ nghĩa yêu cầu và phản hồi ở tầng ứng dụng. Nó mang các tài nguyên như tài liệu và các biểu diễn API.
  • Một mã trạng thái mô tả một phản hồi. Một mã thành công tự nó không thể khẳng định rằng một tập dữ liệu chứa các bản ghi như mong đợi.
  • HTTPS bảo vệ kết nối bằng TLS. Mã hóa và ủy quyền ở tầng ứng dụng vẫn là các yêu cầu tách biệt.
  • Việc truy xuất HTML và việc render trong trình duyệt là những thao tác khác nhau. Một trang có thể tải thêm dữ liệu sau khi tài liệu ban đầu của nó được nhận.

HTTP Kết Nối Yêu Cầu Tài Nguyên Với Phản Hồi

HTTP là viết tắt của Hypertext Transfer Protocol, một giao thức tầng ứng dụng được các trình duyệt web, API và các client khác sử dụng để trao đổi các biểu diễn của tài nguyên. Client gửi một yêu cầu xác định một tài nguyên và một thao tác. Server trả về một phản hồi với trạng thái, các trường mô tả thông điệp và nội dung khi thao tác yêu cầu điều đó. Tài nguyên có thể là một trang HTML, một hình ảnh hoặc dữ liệu ứng dụng có cấu trúc.

Tiêu chuẩn HTTP semantics định nghĩa các khái niệm được chia sẻ giữa các phiên bản giao thức. URL xác định tài nguyên đích, phương thức mô tả thao tác được yêu cầu, và các trường mang thông tin về yêu cầu hoặc phản hồi. HTTP không yêu cầu mọi tài nguyên phải là một tệp trên đĩa. Server có thể tạo một biểu diễn từ cơ sở dữ liệu, kết hợp nhiều dịch vụ, hoặc áp dụng các quy tắc truy cập trước khi trả về nội dung.

Một trang web thường bao gồm nhiều phiên trao đổi HTTP. HTML ban đầu có thể tham chiếu đến stylesheet, script và hình ảnh, và JavaScript của trang có thể yêu cầu thêm dữ liệu. Vì vậy đọc tài liệu đầu tiên chỉ trả lời một câu hỏi hẹp hơn so với việc render giao diện hoàn chỉnh. Khi thu thập dữ liệu web, hãy xác định phản hồi hoặc trạng thái hiển thị nào của trang thực sự chứa các bản ghi cần cho tác vụ.

Một Yêu Cầu HTTP Chứa Những Gì

Một yêu cầu HTTP xác định đích đến và mang theo một phương thức, các trường yêu cầu và nội dung tùy chọn. Dòng yêu cầu dạng văn bản quen thuộc thuộc về định dạng truyền trên dây của HTTP/1.1. Các phiên bản mới hơn mã hóa thông điệp theo cách khác trong khi vẫn giữ nguyên ngữ nghĩa chung. Các công cụ kiểm tra thường trình bày phiên trao đổi ở dạng được chuẩn hóa, thuận tiện cho con người nhưng không nên nhầm với chuỗi byte thô từ mọi phiên bản HTTP.

Các trường yêu cầu có thể mô tả kiểu media chấp nhận được, ngôn ngữ ưa thích, thông tin xác thực, hoặc điều kiện truy cập vào một biểu diễn được lưu trong bộ nhớ đệm. Phần thân yêu cầu có thể mang một đầu vào ứng dụng như dữ liệu form đã gửi hoặc một đối tượng JSON. Phương thức và hợp đồng endpoint quyết định cách diễn giải đầu vào đó. Đừng cho rằng việc thêm nội dung vào bất kỳ phương thức tùy ý nào cũng tạo ra một thao tác API có thể dùng chung.

Tách các tham số truy vấn của tài nguyên khỏi các trường thông điệp và dữ liệu thân. Một API có thể đặt bộ lọc và trạng thái phân trang trong URL trong khi nhận một payload thao tác lớn hơn trong phần thân. Tên tham số, giá trị bắt buộc và kích thước tối đa xuất phát từ hợp đồng riêng của API đó. HTTP cung cấp khung truyền thông; nó không chuẩn hóa hành vi tìm kiếm, sắp xếp hoặc chọn bản ghi của mọi ứng dụng.

Phương Thức Mô Tả Thao Tác Dự Định

Các phương thức HTTP truyền đạt ngữ nghĩa của một yêu cầu, và ứng dụng nên triển khai chúng nhất quán. GET truy xuất một biểu diễn tài nguyên, HEAD lấy thông tin phản hồi mà không có nội dung phản hồi của GET, POST yêu cầu đích xử lý nội dung được cung cấp, PUT tạo hoặc thay thế trạng thái tại đích, và DELETE yêu cầu xóa liên kết với đích. Tác động nghiệp vụ cụ thể vẫn thuộc về ứng dụng.

Các phương thức an toàn được định nghĩa là về bản chất chỉ đọc từ góc nhìn của client, dù server vẫn có thể thực hiện các hành động phụ như ghi log. Các phương thức idempotent có cùng tác dụng dự định khi các yêu cầu giống hệt nhau được áp dụng nhiều lần. Đây là các thuộc tính ngữ nghĩa, không phải là đảm bảo rằng mọi thân phản hồi sẽ giống hệt nhau hoặc rằng một ứng dụng cấu hình sai không thể triển khai sai một phương thức.

Phương thứcÝ nghĩa điển hìnhHàm ý với tập hợp (collection)
GETTruy xuất một biểu diễn tài nguyênKiểm tra nội dung và bất kỳ hợp đồng phân trang nào
HEADTruy xuất metadata phản hồi mà không có nội dung GETĐừng coi việc thiếu thân là thiếu dữ liệu tài nguyên
POSTXử lý nội dung yêu cầu tại đíchXác nhận quyền và các tác dụng phụ mong đợi
PUTTạo hoặc thay thế trạng thái tại đíchChỉ dùng cho thao tác ghi được cho phép rõ ràng
DELETEXóa liên kết với đíchCoi là một thao tác ứng dụng làm thay đổi trạng thái

Đối với việc thu thập dữ liệu công khai, hãy ưu tiên giao diện đọc được ghi tài liệu cung cấp thông tin cần thiết. Đừng suy diễn quyền cho các thao tác ghi chỉ vì cùng máy chủ đó cung cấp các trang có thể đọc. Phạm vi được ủy quyền của một bộ thu thập nên mô tả các tài nguyên và thao tác mà nó sử dụng, bao gồm cả việc trang web mong đợi một phiên trình duyệt hay một thông tin xác thực API.

Mã Trạng Thái Cần Được Diễn Giải Ở Mức Nội Dung Thân

Một mã trạng thái HTTP đặt một phản hồi vào một nhóm kết quả. Các phản hồi thành công, chuyển hướng, lỗi phía client và lỗi phía server truyền tải thông tin khác nhau, nhưng trạng thái không thay thế payload của ứng dụng. Một phản hồi có thể được chấp nhận ở tầng HTTP trong khi chứa một lỗi nghiệp vụ hoặc một tập hợp rỗng cần được diễn giải. Hãy xác thực các trường bắt buộc và các bản ghi mong đợi trước khi ghi nhận là thành công.

Một trang web cũng có thể trả về một ứng dụng khung (application shell) chung với trạng thái thành công cho một tuyến (route) không có trang thực sự. Để xác minh liên kết, hãy kiểm tra URL cuối cùng, tiêu đề, và nội dung thân bài có liên quan. Việc theo dõi chuyển hướng là hữu ích, nhưng một chuyển hướng về trang chủ không chứng minh rằng một trang sản phẩm hoặc tài liệu cụ thể tồn tại. Tài nguyên dự định vẫn phải có mặt tại điểm đến cuối cùng.

Giữ phân loại lỗi chính xác. Thiếu tài nguyên, thông tin xác thực không hợp lệ, không đủ quyền và giới hạn dung lượng là các kết quả khác nhau. Điểm cuối có thể bao gồm chi tiết lỗi có cấu trúc giải thích điều kiện nào đã xảy ra. Lưu bằng chứng đã được làm sạch cùng với kết quả nhiệm vụ và giữ lại trạng thái chưa hoàn thành rõ ràng nếu dữ liệu mong đợi không được lấy. Không thay thế một trang bị lỗi bằng một tập dữ liệu rỗng mang hình thức thành công.

HTTPS thêm lớp bảo vệ cho kênh truyền tải

HTTPS sử dụng HTTP với bảo vệ TLS cho kết nối, giúp client xác thực máy chủ và bảo vệ dữ liệu ứng dụng khi truyền. Mô hình tài nguyên vẫn là HTTP. Một kết nối được mã hóa vẫn có thể truyền tải đầu vào không hợp lệ, một thao tác không được phép, hoặc một trang gây hiểu lầm. Bảo mật cũng phụ thuộc vào việc chọn đúng nguồn gốc (origin), xác thực chứng chỉ, và thực thi các quy tắc phân quyền của ứng dụng.

Các bên trung gian tạo ra các ranh giới bảo vệ riêng biệt. Một CDN hoặc reverse proxy có thể kết thúc TLS từ phía client và thiết lập một kết nối khác tới máy chủ ứng dụng. Một dữ liệu chẩn đoán được thu thập trên một đoạn không tự động mô tả mọi đoạn khác. Hãy ghi lại nơi thông tin xác thực được gửi đến, ai có thể đọc nó tại mỗi điểm kết thúc, và hệ thống nào chịu trách nhiệm chuyển tiếp yêu cầu một cách an toàn.

Các phiên bản HTTP và lược đồ HTTPS trả lời những câu hỏi khác nhau. Đóng khung thông điệp HTTP/1.1 mô tả một kiểu tuần tự hóa cụ thể, trong khi Ghép kênh HTTP/2 mô tả một ánh xạ khác cho cùng một mô hình yêu cầu và phản hồi tổng quát. HTTP/3 sử dụng QUIC. Kiểm tra giao thức đã được thương lượng để chẩn đoán hiệu năng thay vì đoán nó từ URL hoặc từ giao diện một trang trình duyệt.

Tính không trạng thái, Cookie và Phiên làm việc của Ứng dụng

Ngữ nghĩa phi trạng thái (stateless) của HTTP có nghĩa là giao thức không yêu cầu máy chủ phải ghi nhớ một cuộc hội thoại giữa các yêu cầu. Ứng dụng vẫn có thể duy trì trạng thái bằng cookie, thông tin xác thực ủy quyền và bản ghi phiên (session) phía máy chủ. Vì vậy, giỏ hàng hoặc trạng thái đã đăng nhập của người dùng không hề mâu thuẫn với mô hình phi trạng thái của HTTP. Trạng thái được ứng dụng triển khai và được mang theo hoặc được tham chiếu xuyên suốt các lần trao đổi liên tiếp.

Một cookie có thể liên kết một yêu cầu với một phiên, nhưng ý nghĩa chính xác của nó đến từ ứng dụng đã phát hành nó. Tránh gán một mục đích bảo mật cho một tên cookie không quen thuộc khi không có bằng chứng. Khi chẩn đoán hành vi của trình duyệt, hãy phân biệt giữa sự hiện diện của một cookie và bằng chứng rằng phiên đó hợp lệ và đã được ủy quyền. Máy chủ có thể cho phiên ứng dụng hết hạn hoặc thu hồi trạng thái ứng dụng một cách độc lập với việc trình duyệt vẫn giữ một giá trị đã được lưu.

The Vòng đời cookie HTTP là một khái niệm liên quan, trong khi một kiến trúc hướng tài nguyên Thiết kế REST API sử dụng HTTP trong một phong cách kiến trúc rộng hơn. REST và HTTP không phải là các thuật ngữ có thể thay thế cho nhau. HTTP là giao thức, và một API có thể sử dụng nó mà không cần đáp ứng mọi ràng buộc liên quan đến kiến trúc REST.

Lưu trữ các thay đổi về Nguồn gốc của Phản hồi

Bộ nhớ đệm HTTP cho phép một phản hồi đã được lưu trữ có thể đáp ứng một yêu cầu khi các quy tắc bộ nhớ đệm cho phép điều đó. Tiêu chuẩn bộ nhớ đệm HTTP xác định tính mới, tính hợp lệ và các điều khiển quyết định khi nào việc tái sử dụng được cho phép. Do đó, một phản hồi thành công không phải lúc nào cũng có nghĩa là nguồn gốc đã tạo nội dung mới cho yêu cầu cụ thể đó. Sự phân biệt này trở nên quan trọng khi một tác vụ yêu cầu các quan sát trong một khoảng thời gian cụ thể.

Chính sách bộ nhớ đệm cũng bảo vệ ranh giới dữ liệu. Một phản hồi chứa thông tin riêng tư có thể cần được xử lý khác với một tài sản tĩnh công khai. Hãy tuân theo các điều khiển lưu trữ của nguồn gốc và giữ chính sách về độ mới của bộ dữ liệu riêng của bạn ở trạng thái rõ ràng. Ghi lại cả thời gian truy xuất và các dấu thời gian do nguồn cung cấp, khi có thể, có thể giúp người dùng hiểu giá trị đã được ghi nhận đại diện cho điều gì mà không phóng đại tính cập nhật gần đây của nó.

Bộ nhớ đệm ứng dụng và bộ nhớ đệm tầng truyền tải có thể cùng tồn tại. Bộ thu thập của bạn có thể tái sử dụng các bản ghi đã được phân tích ngay cả khi phản hồi HTTP không còn trong bộ nhớ đệm mạng. Hãy xác định việc tái sử dụng đó một cách riêng biệt. Một giá trị đã lưu trữ phù hợp cho kiểm kê nội dung của ngày hôm qua có thể đã quá cũ cho việc so sánh giá hiện tại. Hiệu quả bộ nhớ đệm nên giảm bớt công việc không cần thiết đồng thời vẫn đáp ứng yêu cầu mới nhất đã được nêu ra cho tác vụ.

Đưa HTTP vào Quy trình Bộ sưu tập Đúng

Send the English text you want translated, and I’ll return the Vietnamese version following your rules. Trình mở khóa Web không cần thu thập dữ liệu hỗ trợ truy xuất nội dung dựa trên URL và các tùy chọn kết xuất JavaScript được mô tả trong Tổng quan về Web Unlocker. Hãy chọn những khả năng đó dựa trên tác vụ thực tế thay vì cho rằng mọi trang web đều cần một chuỗi tương tác trình duyệt đầy đủ.

Phản hồi API của bên gọi và phản hồi của trang web đích là các lớp riêng biệt. Một dịch vụ dữ liệu có thể báo cáo rằng nó đã chấp nhận một tác vụ trong khi nội dung đích vẫn cần được kiểm tra. Hãy đọc lớp bao được ghi lại, kiểm tra các trường trạng thái và nội dung liên quan, và áp dụng tiêu chí chấp nhận ở cấp bản ghi. Không suy diễn phản hồi của phía đích chỉ từ trạng thái API bên ngoài.

Đánh giá Giá không dùng công cụ quét dữ liệu cho mô hình sử dụng phù hợp, sau đó xác định URL, dạng biểu diễn và các trường bản ghi khiến bộ sưu tập trở nên hữu ích. Một kết quả có thể bảo vệ được xác định nguồn, ranh giới quan sát và nội dung được chấp nhận. Hiểu biết về HTTP giúp tìm ra trao đổi phù hợp, trong khi việc xác thực dữ liệu xác định liệu trao đổi đó có thực sự đáp ứng câu hỏi nghiệp vụ hay không.

Kết luận

HTTP cung cấp mô hình tài nguyên và thông điệp phía sau các trang web và API. Hãy đọc phương thức, các trường, trạng thái và nội dung cùng với nhau, sau đó tính đến mã hóa, bộ nhớ đệm và trạng thái ứng dụng. Đối với công việc thu thập dữ liệu, hãy xác định phản hồi chứa dữ liệu cần thiết và tự xác minh các bản ghi trước khi tuyên bố công việc thành công.

Xây Dựng Quy Trình Dữ Liệu Web Của Bạn

Sử dụng Web Unlocker để truy xuất dựa trên URL và giữ cho việc diễn giải phản hồi cũng như việc xác thực bản ghi được thể hiện rõ ràng trong ứng dụng của bạn.

Đăng ký hôm nay và nhận $5 tín dụng miễn phí — không cần thẻ tín dụng.

Nhận $5 Tín Dụng Của Bạn →

Câu hỏi thường gặp

HTTP chỉ được dùng cho các trang HTML thôi sao?

HTTP được dùng cho các trang HTML và nhiều dạng biểu diễn tài nguyên khác, bao gồm hình ảnh, dữ liệu JSON, tệp và luồng sự kiện. Kiểu phương tiện phản hồi và hợp đồng endpoint quyết định cách một client nên diễn giải nội dung mà nó nhận được.

Sự khác nhau giữa HTTP và HTTPS là gì?

HTTPS là HTTP được truyền qua một kết nối được bảo vệ bằng TLS. Nó bảo vệ dữ liệu khi truyền và giúp xác thực máy chủ, nhưng ứng dụng vẫn phải thực thi quyền truy cập và kiểm tra hợp lệ dữ liệu đầu vào. Ý nghĩa các phương thức HTTP và các khái niệm về tài nguyên vẫn được áp dụng qua HTTPS.

HTTP 200 có chứng minh là việc thu thập dữ liệu đã thành công không?

HTTP 200 tự nó không chứng minh rằng việc thu thập dữ liệu đã thành công. Hãy kiểm tra tài nguyên cuối cùng, nội dung thân phản hồi mong đợi và các bản ghi bắt buộc. Một khung ứng dụng, một kết quả rỗng hoặc lỗi ở cấp độ nghiệp vụ vẫn có thể cần được diễn giải thêm dù trạng thái HTTP là thành công.

Một giao thức phi trạng thái có thể hỗ trợ phiên đăng nhập không?

Một giao thức phi trạng thái có thể hỗ trợ các ứng dụng có phiên đăng nhập. Cookie hoặc thông tin xác thực cho phép mỗi yêu cầu mang hoặc tham chiếu đến trạng thái mà ứng dụng cần. Hiệu lực phiên và ủy quyền vẫn là các quyết định phía máy chủ, thay vì là những thuộc tính được đảm bảo bởi kết nối HTTP.

Tại sao HTML ban đầu có thể thiếu dữ liệu hiển thị trên trang?

HTML ban đầu có thể thiếu dữ liệu mà các script trên trang yêu cầu hoặc render sau đó. Hãy xác định phản hồi liên quan hoặc trạng thái trang đã render trước khi chọn phương pháp thu thập dữ liệu. Tải xuống đầy đủ tài liệu và quan sát đầy đủ ứng dụng có thể có các ranh giới hoàn tất khác nhau.

Tài liệu tham khảo