Nếu bạn cần thông tin từ một trang web trong ứng dụng Python của mình, bạn cần một yêu cầu web vì mọi thứ đều có thể truy cập được trên Web. Bài viết này sẽ kiểm tra các yêu cầu Python, bao gồm cách chúng được tạo và cách cấu trúc yêu cầu web. Khi bạn hoàn thành, bạn sẽ có thể sử dụng thư viện yêu cầu Python, giúp đơn giản hóa mọi thứ Show
Giới thiệu về các yêu cầu HTTPGiao thức truyền tải siêu văn bản (HTTP), được sử dụng khi chúng ta duyệt Web, là giao thức truyền thông đầu tiên chúng ta cần để trao đổi dữ liệu trên Web. Vì HTTP yêu cầu vận chuyển đáng tin cậy và chỉ TCP mới có thể cung cấp điều đó nên TCP được sử dụng làm giao thức vận chuyển Giả sử chúng ta cần truy cập một tài nguyên, chẳng hạn như trang HTML, được lưu trữ trên máy chủ web ở đâu đó trên thế giới hoặc nói cách khác, chúng ta muốn xem trang đó trong trình duyệt web của mình. Thực hiện một yêu cầu HTTP là điều đầu tiên chúng ta cần làm vì HTTP là giao thức máy khách-máy chủ và các yêu cầu được thực hiện bởi máy khách Các yêu cầu được gửi đến máy chủ, máy chủ sẽ xử lý chúng và phản hồi một cách thích hợp Máy chủ có thể phản hồi theo nhiều cách khác nhau, bao gồm bằng cách gửi tài nguyên mà chúng tôi yêu cầu hoặc bằng cách trả lại mã trạng thái trong trường hợp có điều gì đó không diễn ra như kế hoạch Mọi giao thức truyền thông đều yêu cầu các trường thông tin cụ thể vì cả máy khách và máy chủ đều phải có khả năng hiểu được yêu cầu hoặc phản hồi. Việc xây dựng một yêu cầu HTTP và phản hồi HTTP sẽ được đề cập trong các phần sau, cũng như tầm quan trọng của các trường chính Yêu cầu HTTPKhi chúng tôi xem xét một yêu cầu HTTP, chúng tôi có thể dễ dàng đọc mọi thứ, mặc dù có rất nhiều điều phức tạp bên trong, đây là một trong những tính năng thiết kế quan trọng nhất của HTTP. Bản chất không trạng thái của HTTP có nghĩa là không có kết nối giữa các yêu cầu được gửi lần lượt. Vì giao thức HTTP không theo dõi các yêu cầu trước đó nên mỗi yêu cầu phải bao gồm tất cả thông tin cần thiết để máy chủ xử lý yêu cầu đó Các thành phần sau phải có trong một yêu cầu HTTP hợp lệ
Sau đó, chúng tôi cũng có thể bao gồm một số tiêu đề tùy chọn chỉ định chi tiết bổ sung về người gửi hoặc tin nhắn, chẳng hạn như 1 hoặc ngôn ngữ tự nhiên ưa thích của khách hàng, đây là tiêu đề yêu cầu HTTP điển hình. Cả hai tiêu đề tùy chọn đó đều cung cấp thông tin chi tiết về ứng dụng khách gửi yêu cầuĐây là một ví dụ về thông báo HTTP và tất cả các trường đều dễ hiểu
Phiên bản giao thức HTTP và loại yêu cầu được chỉ định trong dòng đầu tiên, tiếp theo là ngôn ngữ được hỗ trợ bởi ứng dụng khách đang gửi yêu cầu và 2. Các tin nhắn thường dài hơn nhiều, nhưng điều này cung cấp một cái nhìn thoáng qua về cách chúng được viếtPhản hồi HTTPSau khi hiểu được giao diện của một yêu cầu HTTP, chúng ta có thể chuyển sang phản hồi HTTP Các thành phần sau đây thường có trong phản hồi HTTP
Bây giờ rõ ràng là bất cứ khi nào máy khách muốn giao tiếp với máy chủ HTTP, nó phải tạo và gửi yêu cầu HTTP; . Sau đó, máy chủ sẽ tạo và gửi phản hồi HTTP sau khi nhận được Cuối cùng, chúng tôi chuẩn bị trình bày thư viện yêu cầu Python Thư viện yêu cầu PythonThư viện yêu cầu Python tóm tắt sự phức tạp của việc tạo các yêu cầu Python phức tạp và cung cấp giao diện trực quan, cho phép bạn gửi các yêu cầu HTTP Python — từ đơn giản đến phức tạp. Chúng ta sẽ tạo các yêu cầu Python đơn giản và diễn giải phản hồi trong các phần sau, cũng như một số tính năng được cung cấp bởi thư viện yêu cầu Python Cài đặt yêu cầu PythonCài đặt thư viện yêu cầu Python là bước đầu tiên, vì vậy hãy làm điều đó ngay bây giờ _10Khi thư viện yêu cầu Python được cài đặt chính xác, chúng ta có thể sử dụng nó Yêu cầu GET ban đầu chúng tôi đã thực hiện bằng PythonBước đầu tiên là tạo một tệp Python, mà chúng tôi sẽ gọi là 4 trong ví dụ này. Đặt mã này bên trong tệp nguồn này_17Nếu chúng tôi chạy chương trình này, có thể chúng tôi sẽ nhận được kết quả hiển thị bên dưới. Chương trình này gửi yêu cầu GET tới Google
Vì vậy, điều này có nghĩa là gì? Đầu ra này cho biết rằng yêu cầu của chúng tôi đã được nhận, hiểu và xử lý thành công, theo mã trạng thái mà chúng tôi đã thảo luận trước đó. Có các mã bổ sung và chúng tôi có thể liệt kê một số mã phổ biến nhất
Điều gì sẽ xảy ra nếu chúng tôi muốn kiểm tra trạng thái trên cơ sở có điều kiện và đưa ra các hành động khác nhau tùy thuộc vào mã trạng thái? ________thứ mười haiHãy thử nó và xem những gì chúng tôi nhận được; . 😉 Trong trường hợp mã trạng thái 200, chúng tôi sẽ chỉ nhận được 9 và nếu chúng tôi cũng muốn giải thích ngắn gọn đi kèm với từng mã trạng thái, chúng tôi có thể sử dụng 8kiểm tra phản hồi của yêu cầu PythonBây giờ chúng ta đã học cách tạo một yêu cầu Python đơn giản, chúng ta nên yêu cầu phản hồi, phải không? Chúng tôi đã học cách lấy mã trạng thái của phản hồi trong phần trước và bây giờ chúng tôi muốn đọc phần thân của phản hồi, chứa tài nguyên mà chúng tôi thực sự yêu cầu. Chúng tôi cần sử dụng 30 để thực hiện việc này, vì vậy, giả sử chúng tôi đang tìm kiếm trang chủ GoogleKhi chúng tôi thực thi tập lệnh, chúng tôi nhận được kết quả này 6Tài nguyên chúng tôi nhận được, một tài liệu 32, quá dài để in, vì vậy tôi đã thêm 31 ở trên. Đó là 13931 byte trong ví dụ đã nói ở trên, rõ ràng là quá nhiều để in ở đâySử dụng các APITrong ví dụ này, chúng tôi sẽ sử dụng một API đơn giản để dự đoán tuổi của một người dựa trên tên của họ, đây là một trong những lý do khiến thư viện yêu cầu Python trở nên phổ biến. Tên của API này là Agify Đây là mã của ví dụ 0Khi chúng tôi nhận được phản hồi, nếu mã trạng thái là 200, chúng tôi sẽ diễn giải kết quả bằng JSON bằng cách sử dụng 34 để xác định tuổi của một người tên là Marcus. Bây giờ chúng ta có một đối tượng giống như một cuốn từ điển, chúng ta có thể in ra tuổiMarcus được cho là ________ tuổi Tùy chỉnh các tiêu đềTrong ví dụ bên dưới, chúng ta sẽ xem cách sửa đổi tiêu đề của yêu cầu HTTP GET, bổ sung thông tin bổ sung cho cuộc hội thoại cho cả hai bên. Chúng tôi sẽ thay đổi cụ thể các tiêu đề 1 và 37, cung cấp cho máy chủ thông tin chi tiết về ứng dụng, hệ điều hành và nhà cung cấp của tác nhân yêu cầu. Khả năng hiểu ngôn ngữ của khách hàng được truyền đạt trong tiêu đề 37Đây là đoạn mã ngắn của chúng tôi 7Nếu mọi thứ suôn sẻ, bạn nên lấy một cái gì đó tương tự như thế này 8Trong ví dụ này, chúng tôi đã thay đổi 1, giả vờ rằng yêu cầu của chúng tôi bắt nguồn từ Mozilla Firefox và chúng tôi cũng tuyên bố rằng thiết bị của chúng tôi là Samsung Galaxy S22 với hệ điều hành Android 12Chúng tôi có thể thấy rằng trang HTML chúng tôi nhận được bằng tiếng Pháp vì chúng tôi đã in 100 ký tự đầu tiên của phản hồi ở trên Sự kết luậnSau phần giới thiệu lý thuyết ngắn gọn, chúng ta đã thảo luận về giao thức HTTP trong bài viết này và sau đó kiểm tra thư viện yêu cầu của Python. Chúng tôi đã học cách tạo các yêu cầu HTTP Python cơ bản và cách điều chỉnh chúng để đáp ứng nhu cầu của chúng tôi Tôi hy vọng bài viết này và thư viện này sẽ hữu ích cho bạn trong các dự án của bạn đọc liên quan
Chia sẻ bài viết nàyLorenzo Bonanella Tôi là một sinh viên khoa học máy tính tò mò, thích học hỏi những điều mới. Tôi cũng thích đi du lịch, chơi nhạc và thỉnh thoảng viết. Quan sát tôi trên trang web của tôi Tiêu đề yêu cầu Python Tiếp theoCách tạo các yêu cầu HTTP không đồng bộ với hàm ajax() của jQueryAurelio De Rosa, Maria Antonietta Perna Mọi thứ đều có thể truy cập được trên Web thông qua các yêu cầu. Nếu bạn cần thông tin từ một trang web trong ứng dụng Python của mình, bạn cần có một yêu cầu web. Trong bài viết này, chúng ta sẽ đi sâu vào các yêu cầu Python. Chúng ta sẽ xem xét cách cấu trúc một yêu cầu web và cách tạo một yêu cầu Python. Cuối cùng, bạn sẽ có thể sử dụng thư viện yêu cầu Python, giúp toàn bộ quá trình dễ dàng hơn Giới thiệu về các yêu cầu HTTPĐể trao đổi dữ liệu trên Web, trước hết chúng ta cần một giao thức truyền thông. Giao thức được sử dụng khi chúng ta duyệt Web là Giao thức truyền siêu văn bản hoặc HTTP. HTTP sử dụng TCP làm giao thức vận chuyển, vì nó cần vận chuyển đáng tin cậy và chỉ TCP mới có thể đảm bảo rằng Giả sử có một tài nguyên mà chúng ta cần — chẳng hạn như một trang HTML, trên một máy chủ web ở đâu đó trên thế giới. Chúng tôi muốn truy cập tài nguyên này hay nói cách khác, chúng tôi muốn xem trang đó trong trình duyệt web của mình. Điều đầu tiên chúng ta phải làm là thực hiện một yêu cầu HTTP. HTTP là một giao thức máy khách-máy chủ, có nghĩa là các yêu cầu được khởi tạo bởi máy khách Sau khi máy chủ nhận được yêu cầu, nó sẽ xử lý chúng và trả về phản hồi thích hợp Máy chủ có thể trả lời theo nhiều cách khác nhau. Nó có thể gửi tài nguyên mà chúng tôi yêu cầu hoặc trả lời bằng mã trạng thái nếu điều gì đó không diễn ra như mong đợi Trong mọi giao thức truyền thông, thông tin cần phải ở trong các trường cụ thể. Đó là bởi vì cả máy khách và máy chủ đều phải biết cách diễn giải yêu cầu hoặc phản hồi. Trong các phần tiếp theo, chúng ta sẽ xem xét cách xây dựng một yêu cầu HTTP và một phản hồi HTTP. Chúng ta cũng sẽ thảo luận về vai trò của các lĩnh vực quan trọng nhất Yêu cầu HTTPMột trong những tính năng thiết kế quan trọng nhất của HTTP là nó có thể đọc được bằng con người. Điều này có nghĩa là, khi chúng tôi xem xét một yêu cầu HTTP, chúng tôi có thể dễ dàng đọc mọi thứ, ngay cả khi có rất nhiều điều phức tạp bên trong. Một tính năng khác của HTTP là nó không trạng thái. Điều này có nghĩa là không có liên kết nào giữa hai yêu cầu được phân phát lần lượt. Giao thức HTTP không nhớ gì về yêu cầu trước đó. Điều này ngụ ý rằng mỗi yêu cầu phải chứa mọi thứ mà máy chủ cần để thực hiện yêu cầu Yêu cầu HTTP hợp lệ phải chứa các yếu tố sau
Sau đó, chúng tôi cũng có thể thêm một số tiêu đề tùy chọn chỉ định thông tin bổ sung về người gửi hoặc thư. Một ví dụ về tiêu đề yêu cầu HTTP phổ biến là 1 hoặc ngôn ngữ tự nhiên mà khách hàng ưa thích. Cả hai tiêu đề tùy chọn đó đều cung cấp thông tin về ứng dụng khách đang thực hiện yêu cầuĐây là một ví dụ về thông báo HTTP và chúng tôi có thể hiểu rõ ràng tất cả các trường được chỉ định
Dòng đầu tiên chỉ định loại yêu cầu và phiên bản của giao thức HTTP. Sau đó, chúng tôi chỉ định 2 và ngôn ngữ được khách hàng chấp nhận gửi yêu cầu. Thông thường, các tin nhắn dài hơn nhiều, nhưng điều này cho thấy chúng trông như thế nàoPhản hồi HTTPBây giờ chúng ta đã có ý tưởng về một yêu cầu HTTP trông như thế nào, chúng ta có thể tiếp tục và xem phản hồi HTTP Một phản hồi HTTP thường chứa các phần tử sau
Bây giờ chúng tôi đã giới thiệu các yếu tố cơ bản bạn cần, bạn nên tóm tắt trước khi thực hiện bước tiếp theo. Bây giờ rõ ràng là bất cứ khi nào máy khách muốn giao tiếp với máy chủ HTTP, nó phải tạo và gửi một yêu cầu HTTP. Sau đó, khi máy chủ nhận được, nó sẽ tạo và gửi phản hồi HTTP Chúng tôi cuối cùng đã sẵn sàng để giới thiệu thư viện yêu cầu Python Thư viện yêu cầu PythonThư viện yêu cầu Python cho phép bạn gửi các yêu cầu HTTP Python — từ cơ bản đến phức tạp. Thư viện yêu cầu Python tóm tắt sự phức tạp của việc tạo các yêu cầu Python phức tạp, cung cấp giao diện dễ sử dụng. Trong các phần tiếp theo, chúng ta sẽ xem cách tạo các yêu cầu Python dễ dàng và diễn giải phản hồi. Chúng ta cũng sẽ thấy một số tính năng được cung cấp bởi thư viện yêu cầu Python Cài đặt yêu cầu PythonĐầu tiên, chúng ta cần cài đặt thư viện yêu cầu Python. Hãy cài đặt nó bằng cách sử dụng 3
Khi thư viện yêu cầu Python được cài đặt chính xác, chúng ta có thể bắt đầu sử dụng nó Yêu cầu GET đầu tiên của chúng tôi với các yêu cầu PythonĐiều đầu tiên chúng ta phải làm là tạo một tệp Python. Trong ví dụ này, chúng tôi gọi nó là 4. Bên trong tệp nguồn này, hãy chèn mã này 1Chương trình này tạo một yêu cầu GET cho Google. Nếu chúng tôi chạy chương trình này, có thể chúng tôi sẽ nhận được kết quả này
Vì vậy, điều này có nghĩa là gì? Chúng tôi đã nói về mã trạng thái trước đó. Đầu ra này cho chúng tôi biết rằng yêu cầu của chúng tôi đã được nhận, hiểu và xử lý thành công. Ngoài ra còn có các mã khác và chúng tôi có thể liệt kê một số mã phổ biến nhất
Điều gì xảy ra nếu chúng tôi muốn kiểm tra trạng thái một cách có điều kiện và cung cấp các hành động khác nhau dựa trên mã trạng thái? 6Nếu chúng tôi chạy tập lệnh ngay bây giờ, chúng tôi sẽ nhận được một cái gì đó khác. Hãy thử và xem những gì chúng tôi nhận được. 😉 Nếu chúng tôi cũng muốn thông báo ngắn mô tả đi kèm với mỗi mã trạng thái, chúng tôi có thể sử dụng 8. Trong trường hợp mã trạng thái 200, chúng tôi sẽ chỉ nhận được 9Kiểm tra phản hồi của yêu cầu PythonTại thời điểm này, chúng ta đã biết cách tạo một yêu cầu Python cơ bản. Sau khi yêu cầu, chúng tôi muốn phản hồi, phải không? Trong phần trước, chúng ta đã thấy cách lấy mã trạng thái của phản hồi. Bây giờ, chúng tôi muốn đọc phần nội dung của phản hồi, đây là tài nguyên thực tế mà chúng tôi đã yêu cầu. Để làm điều này, chúng ta cần sử dụng 10. Giả sử chúng ta đang tìm kiếm trang chủ GoogleĐây là những gì chúng tôi nhận được khi chạy tập lệnh 0Tôi đã thêm 11 ở trên vì tài nguyên chúng tôi nhận được — là tài liệu 12 — quá dài để in. Bằng bao nhiêu? . Trong trường hợp trên, nó là 13931 byte - chắc chắn là quá nhiều để in ở đâySử dụng các APIMột trong những lý do khiến thư viện yêu cầu Python trở nên phổ biến là vì nó giúp tương tác với API rất dễ dàng. Đối với ví dụ này, chúng tôi sẽ sử dụng một API đơn giản để dự đoán tuổi của một người, dựa trên tên của họ. API này được gọi là Agify Đây là mã cho ví dụ 4Trong trường hợp này, chúng tôi muốn biết tuổi của một người tên là Marcus. Khi chúng tôi có phản hồi, nếu mã trạng thái là 200, chúng tôi sẽ diễn giải kết quả bằng JSON bằng cách sử dụng 14. Tại thời điểm này, chúng tôi có một đối tượng giống như từ điển và chúng tôi có thể in tuổi ước tínhTuổi ước tính của Marcus là 15 tuổiTùy chỉnh các tiêu đềTiêu đề HTTP cung cấp thông tin bổ sung cho cả hai bên của cuộc hội thoại HTTP. Trong ví dụ sau, chúng ta sẽ xem cách chúng ta có thể thay đổi tiêu đề của yêu cầu HTTP GET. Đặc biệt, chúng tôi sẽ thay đổi tiêu đề 1 và 17. 1 cho máy chủ biết một số thông tin về ứng dụng, hệ điều hành và nhà cung cấp của tác nhân yêu cầu. Tiêu đề 17 truyền đạt ngôn ngữ nào mà khách hàng có thể hiểu đượcĐây là đoạn mã đơn giản của chúng tôi 1Nếu mọi thứ suôn sẻ, bạn sẽ nhận được một cái gì đó như thế này 2Trong ví dụ này, chúng tôi đã thay đổi 1, giả vờ rằng yêu cầu của chúng tôi đến từ Mozilla Firefox. Chúng tôi cũng nói rằng hệ điều hành của chúng tôi là Android 12 và thiết bị của chúng tôi là Samsung Galaxy S22Vì chúng tôi đã in 100 ký tự đầu tiên của phản hồi ở trên, chúng tôi có thể thấy rằng trang HTML mà chúng tôi nhận được bằng tiếng Pháp Sự kết luậnTrong bài viết này, chúng tôi đã nói về giao thức HTTP, với phần giới thiệu lý thuyết ngắn gọn. Sau đó, chúng tôi đã xem xét thư viện yêu cầu Python. Chúng tôi đã xem cách viết các yêu cầu HTTP Python cơ bản và cách tùy chỉnh chúng theo nhu cầu của chúng tôi Tôi hy vọng bạn sẽ tìm thấy thư viện này và bài viết này hữu ích cho các dự án của bạn đọc liên quan
Chia sẻ bài viết nàyLorenzo Bonanella Tôi là một sinh viên khoa học máy tính thích đặt câu hỏi và học hỏi những điều mới. Khách du lịch, nhạc sĩ và nhà văn thỉnh thoảng. Kiểm tra tôi trên trang web của tôi Tiêu đề yêu cầu Python Tiếp theoCách sử dụng hàm ajax() của jQuery cho các yêu cầu HTTP không đồng bộAurelio De Rosa, Maria Antonietta Perna |