Tải bản đầy đủ (.docx) (53 trang)

Kỹ thuât lập trình l02

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.8 MB, 53 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA AN TỒN THƠNG TIN

BÁO CÁO BÀI TẬP
MÔN KỸ THUẬT LẬP TRÌNH
ĐỀ TÀI: ỨNG DỤNG XỬ LÝ HTTP REQUEST
Ngành: An tồn thơng tin
Mã số: 7.48.02.02

Sinh viên thực hiện: Phan Anh Duy

AT170615

Phạm Ngọc Thái

AT170645

Trần Anh Tuấn

AT170654

Trần Đức Thắng

AT170646

Hoàng Hữu Ánh

AT170604

Người hướng dẫn:


TS. Nguyễn Mạnh Thắng
Khoa An tồn thơng tin – Học viện Kỹ thuật mật mã

Hà Nội, 2023

1


Mục Lục
Danh Mục Hình Vẽ ...............................................................................................................
Tóm Tắt Nội Dung Đề Tài...............................................................................
Lời Nói Đầu.......................................................................................................
Chương I : Cơng nghệ Web và lỗ hổng Web liên quan http.........................
1. Giới thiệu Công nghệ Web và lỗ hổng web.........................................................................
1.1 Công nghệ web................................................................................................................
1.2 Lỗ hổng web liên quan đến http.....................................................................................
2. Tìm hiểu ứng dụng xây dựng HTTP Request.....................................................................
2.1 Giải thích về API và tương tác hệ thống........................................................................
2.2 HTTP................................................................................................................................
2.3 SSL/TLS kết hợp HTTP...............................................................................................
3. Tổng quan về HTTP Request.............................................................................................
3.1.Cấu trúc của HTTP Request.........................................................................................
3.2.Cấu trúc của HTTP Response......................................................................................
3.3. Ý nghĩa một số Status-Code.........................................................................................
3.4 Cách thức hoạt động của HTTP Request và Response..............................................
3.5 Tại sao cần xử lý HTTP Request..................................................................................
3.6 Các phương thức HTTP Request cơ bản.....................................................................

Chương II : Thư viện xử lý HTTP Request.................................................
1. Giới thiệu các thư viện........................................................................................................

1.1 Thư viện Requests.........................................................................................................
1.2 Thư viện Urllib...............................................................................................................
1.3 Thư viện httplib2...........................................................................................................
2. So sánh ưu nhược điểm của ba thư viện............................................................................
3 Quản lý Exception................................................................................................................
2


3.1 Quản lý Exception trong HTTP Request.....................................................................
3.2 Vai trò của Exception ( bắt ngoại lệ ) trong HTTP Request......................................
3.3 Ứng dụng try-except vào mơ hình client-server.........................................................

Chương III : Xây dựng http client với https................................................
1.HTTPS...................................................................................................................................
2 Quy trình khai thác lỗ hổng.................................................................................................
2.1 Khái quát........................................................................................................................
2.2 DEMO khai thác lỗ hổng..............................................................................................
3. Triển khai mô hình client-server........................................................................................
4. Lấy dữ liệu ở trang web......................................................................................................

Kết Luận..........................................................................................................
Tài Liệu Tham Khảo......................................................................................
Phụ Lục...........................................................................................................

3


Danh Mục Hình Vẽ
Hình 1.1 Cơng nghê Web
Hình 1.2 HTTP

Hình 1.3 HTTP Request
Hình 1.4 Cấu trúc của HTTP Request
Hình 1.5 Cấu trúc của HTTP Response
Hình 1.6 Cách thức hoạt động
Hình 2.1 Thư viện Request
Hình 2.2 Thư viện Urllib
Hình 2.3 Thư viện httplib2
Hình 3.1 HTTP và HTTPS

4


Tóm Tắt Nội Dung Đề Tài
Đề tài xây dựng HTTP Request là một chủ đề trong lĩnh vực An ninh mạng và
Phát triển web, tập trung vào việc xây dựng các yêu cầu http (http request) để thực
hiện các hoạt động như tấn công web, kiểm thử bảo mật hoặc phát triển ứng dụng
web. Trong một số trường hợp, việc xây dựng http request có thể được sử dụng để
tấn công các ứng dụng web bằng cách tạo ra các yêu cầu giả mạo hoặc các yêu cầu
độc hại. Để phịng ngừa các tấn cơng này, các nhà phát triển và chuyên gia bảo mật
cần phải nghiên cứu và hiểu rõ cách xây dựng http request, từ đó có thể tìm ra các
lỗ hổng bảo mật và triển khai các biện pháp bảo vệ phù hợp. Đề tài ứng dụng xử lý
http request là việc tạo một ứng dụng giúp cho việc gửi và nhận yêu cầu http trở
nên dễ dàng hơn, tối ưu hóa tốc độ và hiệu suất. Ứng dụng này cung cấp các tính
năng như caching, chuyển hướng tự động, xử lý lỗi và tự động tạo ra thông báo lỗi.
Các ứng dụng xử lý http request có thể viết bằng các ngơn ngữ lập trình như
Python, Java, PHP, Ruby, v.v. Nó cũng có thể sử dụng các công cụ và thư viện như
Flask hoặc Django để xây dựng các ứng dụng web. Ứng dụng xử lý http request là
một công cụ quan trọng để xử lý yêu cầu từ trình duyệt hoặc các ứng dụng khác,
trả lời với dữ liệu tương ứng và tạo ra các trang web điều khiển động. Nó có thể
tích hợp vào các dự án web hoặc mobile để tăng tính linh hoạt và tiện lợi cho việc

gửi/nhận yêu cầu.Trong đề tài này, sử dụng ngôn ngữ lập trình Python để làm báo
cáo, tập trung vào ba phần chính là: Chương I, Công nghệ Web và lỗ hổng web liên
quan http. Chương 2, thư viện xử lý của http request sẽ tìm hiểu kỹ về ba thư viện
chính là requests, urllib và httplb2. Chương 3, xây dựng http client với https. Quy
Trình khai thác lỗ hổng, Triển khai mơ hình client – server để hiểu rõ hơn về cách
thức hoạt động của nó và cuối cùng là ứng dụng các phương thức http request để
lấy dữ liệu ở một trang web cụ thể.

5


Lời Nói Đầu
Ngày nay, trong xu thế phát triển mạnh mẽ của công nghệ thông tin, mạng và
truyền dữ liệu là một lĩnh vực then chốt, là một phần của khơng thể thiếu trong đời
sống, mang lại những lợi ích to lớn về kinh tế xã hội lẫn an ninh, quốc phịng. Sự
ra đời và phát triển nhanh chóng của mạng máy tính đã xóa bỏ mọi rào cản về
khoảng cách địa lý, cho phép chia sẻ tài nguyên, lưu trữ và quản lý dữ liệu tập
trung, thực hiện các tính tốn phân tán, v.v. Mạng máy tính cũng là nền tảng cung
cấp các mơ hình thương mại điện tử, thanh tốn điện tử cũng như cung cấp mơi
trường kết nối cộng đồng, chia sẻ, giải trí tồn cầu. Mạng máy tính và Internet
cũng đóng vai trị quan trọng trong phát triển kinh tế, giáo dục, v.v.
Với những ai am hiểu về máy tính hay làm việc trong lĩnh vực cơng nghệ
thơng tin chắc khơng cịn gì xa lạ với http request. Thuật ngữ này được sử dụng
khá nhiều, đóng vai trò quan trọng trong việc kết nối các thiết bị với nhau. HTTP
request là một trong những yếu tố quan trọng trong các ứng dụng Web và Internet
hiện nay. Nó là cách để các máy tính gửi yêu cầu và nhận dữ liệu qua mạng. Trong
đó nó còn có vai trò quan trọng trong cuộc sống hiện này như truy cập trang web,
tải về nội dung, gửi dữ liệu đến máy chủ,… Tính cấp thiết của một ứng dụng xử lý
http request trong cuộc sống ngày nay rất cao. Việc sử dụng mạng Internet đã trở
thành một phần không thể tách rời của cuộc sống chúng ta, và http request là cách

để các máy tính và thiết bị trao đổi dữ liệu với nhau qua mạng. Ứng dụng xử lý
http request cần phải đáp ứng nhu cầu về tốc độ và độ tin cậy cao của các ứng dụng
web và các dịch vụ trực tuyến. Nó cũng phải đáp ứng nhu cầu về bảo mật và riêng
tư của người dùng, vì vậy tính bảo mật cao cũng là một yếu tố quan trọng trong
thiết kế và phát triển các ứng dụng xử lý http request.
Qua bản cáo này, mong muốn đưa đến cho mọi người một cái nhìn tổng quát
nhất về Ứng dụng xử lý HTTP REQUEST. Giúp cho người nghe, người đọc có thể
hình dung ra cách thức hoạt động, cách xử lý cũng như vai trò của nó trong cuộc
sống hiện này.

6


Chương I: Công nghệ Web và lỗ hổng Web liên quan http
1. Giới thiệu Công nghệ Web và lỗ hổng web
1.1 Công nghệ web
Công nghệ web là tập hợp các công nghệ và tiêu chuẩn được sử dụng để phát
triển và hoạt động các ứng dụng web. Các công nghệ web cung cấp các công cụ,
giao thức, ngôn ngữ lập trình và cơ sở dữ liệu cho phép phát triển các ứng dụng
web đa dạng và phức tạp.
Một số công nghệ web phổ biến bao gồm:
+ HTML (Hypertext Markup Language): Là ngôn ngữ đánh dấu văn bản được
sử dụng để tạo nội dung trên các trang web.
+ CSS (Cascading Style Sheets): Là ngôn ngữ định dạng được sử dụng để định
dạng và trang trí các trang web.
+ JavaScript: Là ngơn ngữ lập trình được sử dụng để tạo ra các chức năng động
trên các trang web, như tương tác người dùng, kiểm tra dữ liệu, v.v.
+ Server-side scripting: Bao gồm các ngơn ngữ lập trình như PHP, Python,
Ruby, v.v. được sử dụng để xử lý và tạo nội dung động trên máy chủ.
+ Database management systems (DBMS): Các hệ quản trị cơ sở dữ liệu được

sử dụng để lưu trữ và quản lý dữ liệu của các ứng dụng web.
+ Web servers: Các máy chủ web như Apache, Nginx, v.v. được sử dụng để
phục vụ các trang web và xử lý các u cầu từ các trình duyệt.
Cơng nghệ web cũng liên quan đến các tiêu chuẩn và giao thức như HTTP
(Hypertext Transfer Protocol), HTTPS (Hypertext Transfer Protocol Secure),
SSL/TLS (Secure Sockets Layer/Transport Layer Security), v.v. để đảm bảo an
toàn và bảo mật cho các ứng dụng web.

Hình 1.1 Cơng nghê Web

7


1.2 Lỗ hổng web liên quan đến http
Lỗ hổng liên quan đến HTTP (Hypertext Transfer Protocol) là một trong
những vấn đề bảo mật thường gặp trên các trang web. Dưới đây là một số lỗ hổng
phổ biến liên quan đến HTTP:
+ Lỗ hổng XSS (Cross-site scripting): Đây là lỗ hổng cho phép tấn công viên
chèn mã độc vào trang web và lừa người dùng khác truy cập vào trang web này để
thực hiện các hành động độc hại.
+ Lỗ hổng CSRF (Cross-site request forgery): Đây là lỗ hổng cho phép tấn
công viên sử dụng thông tin đăng nhập của người dùng khác để thực hiện các hành
động độc hại trên trang web.
+ Lỗ hổng SQL injection: Đây là lỗ hổng cho phép tấn công viên chèn mã độc
SQL vào trang web và truy cập vào các thông tin nhạy cảm của người dùng hoặc
các dữ liệu khác trong cơ sở dữ liệu.
+ Lỗ hổng Man-in-the-middle (MITM): Đây là lỗ hổng cho phép tấn công viên
theo dõi và gián điệp các giao dịch giữa người dùng và trang web, có thể lấy cắp
thông tin đăng nhập và các dữ liệu khác.
Các lỗ hổng trên đây đều liên quan đến cách trang web xử lý các yêu cầu và

phản hồi thông tin giữa máy khách và máy chủ thông qua giao thức HTTP. Để
tránh các lỗ hổng này, các nhà phát triển web cần áp dụng các biện pháp bảo mật
phù hợp, như kiểm tra đầu vào dữ liệu, mã hóa thơng tin, sử dụng các giải pháp
bảo mật cho giao tiếp và cập nhật thường xuyên các phần mềm hệ thống.
2. Tìm hiểu ứng dụng xây dựng HTTP Request
2.1 Giải thích về API và tương tác hệ thống
* Định nghĩa : API là viết tắt của cụm từ "Application Programming Interface", có
nghĩa là giao diện lập trình ứng dụng. Nó là một tập hợp các giao thức, quy tắc và
công nghệ cho phép các ứng dụng khác nhau có thể giao tiếp và trao đổi dữ liệu
với nhau.
* Hoạt động: Kiến trúc API thường được giải thích dưới dạng máy chủ và máy
khách. Ứng dụng gửi yêu cầu được gọi là máy khách, còn ứng dụng gửi phản hồi
được gọi là máy chủ. API hoạt động theo 4 cách khác nhau, tùy vào thời điểm và lý
do chúng được tạo ra bao gồm: API SOAP, API RPC, API Websocket, API REST.
Trong đó, API REST phổ biến và linh hoạt nhất trên web hiện nay.
8


* Tương tác hệ thống:
+ API cung cấp một cách thức tương tác hệ thống giữa các ứng dụng, giúp chúng có
thể liên kết, tương tác và truyền dữ liệu cho nhau một cách hiệu quả. Các API có thể
cung cấp cho các ứng dụng khác nhau các chức năng, dịch vụ và tài nguyên khác
nhau, như lấy dữ liệu, xử lý dữ liệu, cập nhật thông tin, đăng nhập, v.v.
+ Khi sử dụng API để tương tác với hệ thống, ứng dụng sẽ gửi một yêu cầu tới hệ
thống thông qua một giao thức nhất định, thông thường là HTTP hoặc HTTPS. Yêu
cầu này chứa các thông tin như địa chỉ URL, tham số và phương thức HTTP (GET,
POST, PUT, DELETE, ..).
+ Sau khi nhận được yêu cầu, hệ thống sẽ xử lý và phản hồi lại cho ứng dụng thông
qua một định dạng dữ liệu cụ thể như JSON, XML hoặc CSV. Phản hồi này có thể
chứa dữ liệu được u cầu hoặc thơng báo lỗi nếu có vấn đề xảy ra.

2.2 HTTP
+ HTTP (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản được sử
dụng trong www dùng để truyền tải dữ liệu giữa Web server đến các trình duyệt
Web và ngược lại qua cổng 80.
+ HTTP hoạt động theo mơ hình Client (máy khách) – Server (máy chủ). Việc truy
cập website được tiến hành dựa trên các giao tiếp giữa 2 đối tượng trên. Khi truy
cập một trang web qua giao thức HTTP, trình duyệt sẽ thực hiện các phiên kết nối
đến server của trang web đó thơng qua địa chỉ IP do hệ thống phân giải tên miền
DNS cung cấp. Máy chủ sau khi nhận lệnh, sẽ trả về lệnh tương ứng giúp hiển thị
website, bao gồm các nội dung như: văn bản, ảnh, video, âm thanh,…
+ Trong quá trình kết nối và trao đổi thơng tin, trình duyệt sẽ mặc nhiên thừa nhận
địa chỉ IP đó đến từ server của chính website mà ta muốn truy cập mà khơng hề có
biện pháp xác thực nào. Các thông tin được gửi đi qua giao thức HTTP (bao gồm
địa chỉ IP, các thông tin nhập vào website…) cũng khơng hề được mã hóa và bảo
mật. Đây chính là kẽ hở mà nhiều hacker đã lợi dụng để đánh cắp thông tin người
dùng, thường được gọi là tấn cơng sniffing.

Hình 1.2 HTTP

9


2.3 SSL/TLS kết hợp HTTP
* SSL là chữ viết tắt của Secure Sockets Layer (Lớp socket bảo mật). Một loại bảo
mật giúp mã hóa liên lạc giữa website và trình duyệt. Công nghệ này đang lỗi thời
và được thay thế hoàn toàn bởi TLS.
* TLS là phiên bản tiếp theo của SSL và được phát triển bởi IETF (Internet
Engineering Task Force). TLS có khả năng bảo mật hơn và đáng tin cậy hơn so với
SSL, cũng như hỗ trợ nhiều phiên bản khác nhau để đáp ứng các yêu cầu của các
ứng dụng khác nhau. TLS được sử dụng rộng rãi trên internet hiện nay để đảm bảo

tính tồn vẹn của dữ liệu truyền tải và bảo vệ thông tin cá nhân của người dùng.
* SSL/TLS kết hợp HTTP
+ Khi kết hợp cả SSL/TLS và HTTP, ta có giao thức HTTPS (HTTP Secure).
HTTPS sử dụng SSL/TLS để tạo ra một kênh truyền tải dữ liệu an toàn giữa máy
khách và máy chủ, và sử dụng HTTP để truyền tải các yêu cầu và phản hồi giữa hai
thiết bị.
+ Khi người dùng truy cập một trang web sử dụng HTTPS, trình duyệt sẽ thiết
lập một kênh truyền tải dữ liệu an tồn giữa trình duyệt của người dùng và máy
chủ sử dụng SSL/TLS. Sau đó, các yêu cầu và phản hồi trên trang web sẽ được
truyền tải qua kênh này.
+ Việc sử dụng HTTPS giúp bảo vệ thông tin cá nhân của người dùng, đảm
bảo tính tồn vẹn của dữ liệu truyền tải và ngăn chặn các tấn công như giả mạo
trang web và trộm thơng tin đăng nhập. Các trình duyệt phổ biến như Chrome,
Firefox và Safari đều hỗ trợ HTTPS và cung cấp cảnh báo cho người dùng nếu
trang web không sử dụng giao thức này.
3. Tổng quan về HTTP Request
HTTP Request hiểu một cách đơn giản là các thông tin sẽ được gửi từ khách
hàng (client) lên server. Server sẽ có nhiệm vụ tìm và xử lý các loại dữ liệu, thơng
tin, client mong muốn. HTTP Request có thể tồn tại dưới file text hoặc dưới
dạng XML hoặc dạng Json.

Hình 1.3 HTTP Request

10


3.1. Cấu trúc của HTTP Request
HTTP Request có cấu tạo gồm ba phần chính. Đó là request line, header và
massage body. 


Hình 1.4 Cấu trúc của HTTP Request

* Request line
Đây là dịng đầu tiên của HTTP Request, với ba loại chính là method, path
(hay URL) và HTTP version. Cụ thể:
+ Method: gồm nhiều loại nhưng phổ biến nhất là GET và POST. Trong đó,
phương thức GET có tác dụng dùng để yêu cầu các tài nguyên cung cấp trong
URL.
+ Path (URL): có tác dụng định danh các nguồn tài nguyên được yêu cầu bởi
khách hàng, người dùng và bắt buộc phải có dấu “/".
+ HTTP version: Đây là phiên bản HTTP được sử dụng, trong đó phổ biến nhất là
HTTP/1.0 hay HTTP/1.1.
* Headers
Yếu tố thứ hai góp phần làm hình thành HTTP Request đó là các header.
Thơng tin được bổ sung sẽ truyền tải giữa cả máy chủ và máy khách, chẳng hạn
như cookie, thông tin về ủy quyền, tác nhân người dùng… Tương tự một HTTP
Request, header sẽ phân biệt chữ thường và chữ hoa, theo sau đó là dấu “.” và một
giá trị.
* Message Body
Yếu tố thứ ba được đề cập đến đó là massage body. Máy chủ dùng nội dung
thư để cung cấp những thông thông tin cần thiết nhất đến với máy khách. Massage
body có chứa các dịng u cầu, thơng tin, dịng trống, tiêu đề, và nội dung. Trong
đó, yếu tố nội dung sẽ tùy chọn. Khơng phải tất cả các u cầu đều có nội dung
nhưng sẽ dùng POST để phân phối tải trọng.
3.2. Cấu trúc của HTTP Response
Cấu trúc HTTP Response gần giống với HTTP request. Điểm khác biệt là thay
vì Request-Line, HTTP response có Status-Line. Tương tự như Request-Line,
Status-Line cũng có ba phần như sau:
11



+ HTTP-version: phiên bản HTTP cao nhất mà server hỗ trợ.
+ Status-Code: mã kết quả trả về.
+ Reason-Phrase: mơ tả về Status-Code.

Hình 1.5 Cấu trúc của HTTP Response

3.3. Ý nghĩa một số Status-Code
Yếu tố Status-Code là một số nguyên 3 ký tự. Ký tự đầu tiên của mã hóa trạng
thái định nghĩa hạng (loại) phản hồi và hai ký tự cuối khơng có bất cứ vai trị phân
loại nào. Có 5 giá trị của ký tự đầu tiên:
+ 1xx: Thông tin. Mã này nghĩa là yêu cầu đã được nhận và tiến trình đang tiếp
tục.
+ 2xx: Thành công. Mã này nghĩa là hoạt động đã được nhận, được hiểu, và được
chấp nhận một cách thành công.
+ 3xx: Sự điều hướng lại. Mã này nghĩa là hoạt động phải được thực hiện để hoàn
thành yêu cầu.
+ 4xx: Lỗi Client. Mã này nghĩa là u cầu chứa cú pháp khơng chính xác hoặc
không được thực hiện.
+ 5xx: Lỗi Server. Mã này nghĩa là Server thất bại với việc thực hiện một yêu cầu
nhìn như có vẻ khả thi.
3.4 Cách thức hoạt động của HTTP Request và Response
HTTP Request và Response là hai phần chính của giao thức HTTP. Hệ thống
HTTP hoạt động theo mô hình client-server, trong đó máy khách (client) gửi u
cầu đến máy chủ (server) và máy chủ trả lời với dữ liệu tương ứng.
Cụ thể, quá trình hoạt động của HTTP Request và Response như sau:
+ HTTP Request: Khi một trình duyệt hoặc ứng dụng khác muốn truy cập một
trang web hoặc tài nguyên trên máy chủ, nó sẽ gửi một HTTP Request đến máy
12



chủ. Yêu cầu này bao gồm các thông tin như URL, phương thức (GET, POST,
PUT, DELETE,...), header và nội dung (nếu có).
+ HTTP Response: Sau khi nhận được yêu cầu, máy chủ sẽ xử lý yêu cầu và
trả lời với một HTTP Response. Trả lời này bao gồm các thông tin như mã trạng
thái (200, 404, 500,...), header và nội dung dữ liệu (HTML, JSON, XML, ...).
+ Xử lý dữ liệu: Khi trình duyệt nhận được HTTP Response, nó sẽ xử lý dữ
liệu và hiển thị trang web tương ứng cho người dùng.
Tổng quan, quá trình hoạt động của HTTP Request và Response là một q
trình trao đổi thơng tin giữa client và server để truy cập và trả lời với dữ liệu

Hình 1.6 Cách thức hoạt động

3.5 Tại sao cần xử lý HTTP Request
Xử lý HTTP Request là một trong những việc cần thiết để xây dựng và triển
khai một ứng dụng mạng. Một số lý do tại sao cần xử lý HTTP Request như sau:
+ Truy cập dữ liệu: Xử lý HTTP Request cho phép truy cập và lấy dữ liệu từ
các nguồn trên mạng như trang web, API, cơ sở dữ liệu,...
+ Tạo điều kiện cho việc giao tiếp giữa client và server: Xử lý HTTP Request
cho phép tạo ra một giao tiếp an toàn và một cách hiệu quả giữa các thành phần
của ứng dụng.
+ Kiểm soát truy cập: Xử lý HTTP Request cho phép kiểm soát và giới hạn truy
cập đến dữ liệu và tài nguyên.
+ Xử lý dữ liệu: Xử lý HTTP Request cho phép xử lý và tạo ra dữ liệu đầu ra từ
dữ liệu đầu vào được gửi từ client.
+ Tăng tính bảo mật: Xử lý HTTP Request cho phép bảo vệ dữ liệu và tài
ngun bằng cách mã hóa thơng tin và xác thực client.
13



Nói tóm lại, xử lý HTTP Request là một phần quan trọng của việc xây dựng và
triển khai ứng dựng
3.6 Các phương thức HTTP Request cơ bản
3.6.1 GET
+ Get là phương thức được Client gửi dữ liệu lên Server thông qua đường dẫn URL
nằm trên thanh địa chỉ của Browser. Server sẽ nhận đường dẫn đó và phân tích trả
về kết quả. Hơn nữa, nó là một phương thức được sử dụng phổ biến mà khơng cần
có request body.
+ Phương thức GET không thay đổi dữ liệu trên server và nó có thể được lưu vào
bộ nhớ cache trên trình duyệt để giảm thiểu thời gian tải trang web. Tuy nhiên,
phương thức này không được sử dụng để gửi dữ liệu quan trọng hoặc bảo mật, vì
nó sẽ truyền dữ liệu thơng qua URL, và những thơng tin này có thể bị lộ nếu URL
được lưu trữ hoặc chia sẻ.
CODE

import requests
response = requests.get(" />print(response.json)
print(response.text)

KẾT
QUẢ

14


GIẢI
THÍCH

Dịng 1: Sử dụng thư viện Requests để tạo một yêu cầu GET
tới URL Kết quả của yêu cầu được lưu

trữ trong biến response.
Dòng 2: In ra nội dung của phản hồi dưới dạng JSON bằng
cách gọi phương thức json() của đối tượng response. Phương
thức này sẽ chuyển đổi dữ liệu JSON trả về từ server thành một
đối tượng Python.
Dòng 3: In ra nội dung của phản hồi dưới dạng văn bản bằng
cách gọi phương thức text() của đối tượng response.

3.6.2 POST

+ Phương thức Post là phương thức gửi dữ liệu đến server giúp thêm mới
dữ liệu hoặc cập nhật dữ liệu đã có vào database.
+ Khi tạo dữ liệu nên dùng POST để bảo mật dữ liệu hơn
CODE

import requests
response =
requests.post(" />ge":20})
print(response.text)

KẾT
QUẢ

GIẢI
THÍCH

Dịng 1: Sử dụng thư viện Requests để tạo một yêu cầu
POST tới URL và gửi dữ liệu với các
thông tin về tên và tuổi. Kết quả của yêu cầu được lưu trữ
trong biến response.

Dòng 2: In ra nội dung của phản hồi dưới dạng văn bản bằng
15


cách gọi phương thức text() của đối tượng response. Phương
thức này sẽ trả về nội dung của phản hồi dưới dạng văn bản
(text/plain hoặc text/html).

3.6.3 PUT
+ Cách hoạt động tương tự như Post nhưng nó chỉ được sử dụng để cập nhật dữ liệu
đã có trong database. Khi sử dụng nó, phải sửa tồn bộ dữ liệu của một đối tượng.
+ Khi sử dụng phương thức PUT, dữ liệu được gửi từ client lên server được đóng
gói trong một phần thân của yêu cầu HTTP. Phần thân này có thể chứa dữ liệu
được mã hóa dưới nhiều định dạng khác nhau như form data, JSON, XML,...

CODE

import requests
response =
requests.put(" />,"age":20,"pwd":123})
print(response.text)

KẾT
QUẢ

GIẢI
THÍCH

Dịng 1: Sử dụng thư viện Requests để tạo một yêu cầu PUT
tới URL và gửi dữ liệu với các thông tin

về tên, tuổi và mật khẩu. Kết quả của yêu cầu được lưu trữ
trong biến response.
Dòng 2: In ra nội dung của phản hồi dưới dạng văn bản bằng
cách gọi phương thức text() của đối tượng response. Phương
16


thức này sẽ trả về nội dung của phản hồi dưới dạng văn bản
(text/plain hoặc text/html).
3.6.4 DELETE
Giống như tên gọi, khi sử dụng phương thức Delete sẽ xoá các dữ liệu của
server về tài nguyên thông qua URI. Cũng giống như GET, phương thức này khơng
có body request.
Khi máy chủ nhận được request DELETE, nó sẽ kiểm tra xem tài ngun được
u cầu có tồn tại hay khơng. Nếu tài nguyên tồn tại, máy chủ sẽ xóa tài nguyên và
trả về một HTTP response với mã trạng thái là 200 (OK) hoặc 204 (No Content).
Nếu tài nguyên không tồn tại, máy chủ sẽ trả về một HTTP response với mã trạng
thái là 404 (Not Found)
CODE

import requests

response = requests.delete(" />
print(response.text)

KẾT
QUẢ

GIẢI
THÍCH


Dịng 1: Sử dụng thư viện Requests để tạo một yêu cầu
DELETE tới URL Kết quả của yêu cầu
được lưu trữ trong biến response.
Dòng 2: In ra nội dung của phản hồi dưới dạng văn bản bằng
cách gọi phương thức text() của đối tượng response. Phương
thức này sẽ trả về nội dung của phản hồi dưới dạng văn bản
17


(text/plain hoặc text/html).

Chương II: Thư viện xử lý HTTP Request
1. Giới thiệu các thư viện
1.1 Thư viện Requests
1.1.1 Định nghĩa Requests
Requests là một thư viện Python dùng để gửi và nhận HTTP Requests và
Responses. Nó được thiết kế để đơn giản hóa việc gửi HTTP Requests, cho phép
gửi các loại Request như GET, POST, PUT, DELETE và HEAD một cách dễ dàng.

Hình 2.1 Thư viện Request

Thư viện requests cung cấp một số tính năng nổi bật như:
+ Tự động mã hóa và giải mã dữ liệu được truyền qua giữa Client và Server.
18


+ Hỗ trợ gửi và nhận dữ liệu với các định dạng như JSON, XML, v.v.
+ Hỗ trợ gửi các tham số trong Request.
+ Hỗ trợ gửi các file trong Request.

+ Tự động xử lý các lỗi liên quan đến mạng và hỗ trợ tùy chỉnh các tùy chọn cho
việc gửi Request.
Với tính năng và sự tiện dụng của nó, requests là một trong những thư viện
HTTP Requests phổ biến nhất trong Python và được sử dụng rộng rãi trong các dự
án Web Development và API Development.
1.1.2 Cài đặt thư viện Requests
Có thể sử dụng Requests với Python phiên bản 2.6-2.7 và 3.3-3.6. Trước khi
tiếp tục, ta nên biết rằng Requests là một mơ-đun bên ngồi, do đó ta sẽ phải cài
đặt nó trước khi chạy thử các ví dụ trong hướng dẫn này. Có thể cài đặt nó bằng
cách chạy lệnh sau đây trong terminal:

Một khi đã cài đặt mơ-đun, có thể kiểm tra nó đã được cài đặt thành cơng hay
chưa bằng cách import nó bằng lệnh này:

1.1.3 Tạo một yêu cầu với GET
Rất dễ để gửi một yêu cầu HTTP bằng Requests. Ta bắt đầu bằng cách import
module và sau đó thực hiện yêu cầu. Dưới đây là một ví dụ:

Tất cả các thơng tin về u cầu của chúng ta bây giờ được lưu trữ trong một
đối tượng Response được gọi là req. Ví dụ: Có thể lấy mã hóa của trang web bằng

19


thuộc tính req.encoding. Ta cũng có thể lấy mã trạng thái của u cầu bằng thuộc
tính req.status_code.

Cũng có thể lấy được thời gian trôi qua giữa gửi yêu cầu và nhận lại phản hồi
bằng thuộc tính  req.elapseed . URL đã truyền cho hàm  get()  có thể khác với URL
sau cùng của phản hồi vì nhiều lý do, kể cả redirect. Để xem URL phản hồi sau

cùng, có thể sử dụng thuộc tính  req.url .
Nhận tất cả các thông tin này về trang web đang truy cập là điều rất tốt, nhưng
có thể muốn truy cập vào nội dung thật sự. Nếu nội dung đang truy cập là văn bản,
ta có thể sử dụng thuộc tính  req.text  để truy xuất nó. Nội dung sau đó được phân
tích thành unicode. Ta có thể truyền vào mã hố để giải mã văn bản bằng thuộc
tính  req.encoding .
Trong trường hợp phản hồi không phải là văn bản, có thể truy cập chúng dưới
dạng nhị phân bằng  req.content . Mô-đun này sẽ tự động giải
mã  gzip  và  deflate . Điều này có thể hữu ích khi đang xử lý các tập tin media.
Tương tự, có thể truy cập nội dung đã được mã hóa dạng json của phản hồi, nếu
có, hãy sử dụng  req.json() .
1.1.4 Ví dụ về thư viện Requests
* Ví dụ 1: Đây là một đoạn mã Python sử dụng thư viện requests để gửi một yêu
cầu GET đến trang chủ của Github API và lấy dữ liệu về các sự kiện mới nhất.
CODE

import requests
url = " />r=requests.get(url=url)
status=r.json  #200 truy cập thành công , 400 k thểtruy
cập
data = r.json()[0]["actor"]
print(status)
print(data)
r.status_code

20




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×