URL mã hóa Python

RFC 3986 phần 2. 2 Ký tự dành riêng [tháng 1 năm 2005]!*'[];:@&=*0*1*2*3*4*5*6*7


RFC 3986 phần 2. 3 Unreserved Characters [January 2005]*8*9'0'1'2'3'4'5'6'7'8'9[0[1[2[3[4[5[6[7[8[9]0]1]2]3]4]5]6]7]8]9;0;1;2;3;4;5;6;7;8;9:0:1:2:3:4:5:6:7:8:9@0@1@2@3@4@5@6@7@8@9&0&1&2&3


Các ký tự khác trong URI phải được mã hóa phần trăm.

Ký tự dành riêng mã hóa phần trăm

Khi một ký tự từ tập hợp dành riêng ["ký tự dành riêng"] có ý nghĩa đặc biệt ["mục đích dành riêng"] trong một mục đích cụ thể . Mã hóa phần trăm một ký tự dành riêng có nghĩa là chuyển đổi ký tự thành giá trị byte tương ứng của nó trong ASCII và sau đó biểu thị giá trị đó dưới dạng một cặp chữ số thập lục phân. Các chữ số, trước dấu phần trăm ["%"], sau đó được sử dụng trong URI thay cho ký tự dành riêng. [Đối với một ký tự không phải ASCII, nó thường được chuyển đổi thành chuỗi byte của nó trong UTF-8, sau đó mỗi giá trị byte được biểu diễn như trên. ]

Ví dụ: ký tự dành riêng "/", nếu được sử dụng trong thành phần "đường dẫn" của URI, có ý nghĩa đặc biệt là dấu phân cách giữa các đoạn đường dẫn. Nếu, theo lược đồ URI nhất định, "/" cần phải nằm trong một đoạn đường dẫn, thì ba ký tự "%2F" [hoặc "%2f"] phải được sử dụng trong đoạn thay vì "/".

Reserved characters after percent-encoding!*5*1&'[]**0*2*3:;=*4@*6*7*02*03*04*05*06*07*08*09*10*11*12*13*14*15*16*17*18*19


Các ký tự dành riêng không có mục đích dành riêng trong ngữ cảnh cụ thể cũng có thể được mã hóa theo phần trăm nhưng không khác biệt về mặt ngữ nghĩa so với các ký tự khác.

Trong thành phần "truy vấn" của một URI [phần sau ký tự "?"], ví dụ: "/" vẫn được coi là một ký tự dành riêng nhưng nó thường không có mục đích dành riêng [trừ khi . Ký tự không cần được mã hóa theo phần trăm khi nó không có mục đích dành riêng.

Các URI chỉ khác nhau về việc một ký tự dành riêng có được mã hóa theo phần trăm hay không thường được coi là không tương đương [biểu thị cùng một tài nguyên] trừ trường hợp các ký tự dành riêng được đề cập không có mục đích dành riêng. Quyết định này phụ thuộc vào các quy tắc được thiết lập cho các ký tự dành riêng theo các sơ đồ URI riêng lẻ.

Ký tự không đặt trước mã hóa theo phần trăm

Các ký tự từ tập hợp không đặt trước không bao giờ cần mã hóa theo phần trăm.

Các URI chỉ khác nhau ở việc một ký tự không được đặt trước có được mã hóa theo phần trăm hay không là tương đương theo định nghĩa, nhưng trên thực tế, bộ xử lý URI có thể không phải lúc nào cũng xử lý chúng như nhau. Ví dụ: người tiêu dùng URI không nên coi "%41" khác với "A" ["%41" là mã hóa phần trăm của "A"] hoặc "%7E" khác với "~", nhưng một số người thì làm như vậy. Để có khả năng tương tác tối đa, do đó, các nhà sản xuất URI không khuyến khích mã hóa phần trăm các ký tự không được đặt trước.

Phần trăm mã hóa ký tự phần trăm

Vì ký tự phần trăm ["%"] đóng vai trò là chỉ báo cho các octet được mã hóa phần trăm nên nó phải được mã hóa phần trăm như .

Dữ liệu tùy ý mã hóa phần trăm

Hầu hết các sơ đồ URI liên quan đến việc biểu diễn dữ liệu tùy ý, chẳng hạn như địa chỉ IP hoặc đường dẫn hệ thống tệp, dưới dạng các thành phần của URI. Các đặc tả lược đồ URI nên, nhưng thường không, cung cấp ánh xạ rõ ràng giữa các ký tự URI và tất cả các giá trị dữ liệu có thể được biểu thị bằng các ký tự đó.

Dữ liệu nhị phân

Kể từ khi RFC 1738 được xuất bản vào năm 1994, người ta đã xác định rằng các sơ đồ cung cấp biểu diễn dữ liệu nhị phân trong URI phải chia dữ liệu . Ví dụ: giá trị byte 0F [thập lục phân] phải được biểu thị bằng "%0F", nhưng giá trị byte 41 [thập lục phân] có thể được biểu thị bằng "A" hoặc "%41". Việc sử dụng các ký tự không được mã hóa cho chữ và số và các ký tự không được đặt trước khác thường được ưu tiên hơn vì nó dẫn đến các URL ngắn hơn.

Dữ liệu ký tự

Quy trình mã hóa phần trăm dữ liệu nhị phân thường được ngoại suy, đôi khi không phù hợp hoặc không được chỉ định đầy đủ, để áp dụng cho dữ liệu dựa trên ký tự. Trong những năm hình thành của World Wide Web, khi xử lý các ký tự dữ liệu trong danh mục ASCII và sử dụng các byte tương ứng của chúng trong ASCII làm cơ sở để xác định các chuỗi được mã hóa phần trăm, phương pháp này tương đối vô hại; . Tuy nhiên, nhu cầu biểu diễn các ký tự bên ngoài phạm vi ASCII tăng lên nhanh chóng và các lược đồ và giao thức URI thường không cung cấp các quy tắc chuẩn để chuẩn bị dữ liệu ký tự để đưa vào URI. Do đó, các ứng dụng web bắt đầu sử dụng các mã hóa nhiều byte, trạng thái và không tương thích với ASCII khác làm cơ sở cho mã hóa phần trăm, dẫn đến sự mơ hồ cũng như khó diễn giải các URI một cách đáng tin cậy.

Ví dụ: nhiều lược đồ và giao thức URI dựa trên RFC 1738 và 2396 cho rằng các ký tự dữ liệu sẽ được chuyển đổi thành byte theo một số mã hóa ký tự không xác định trước khi được biểu thị trong URI bằng các ký tự hoặc phần trăm không được đặt trước . Nếu lược đồ không cho phép URI cung cấp gợi ý về mã hóa nào đã được sử dụng hoặc nếu mã hóa xung đột với việc sử dụng ASCII để mã hóa phần trăm các ký tự dành riêng và không dành riêng, thì URI không thể được diễn giải một cách đáng tin cậy. Một số lược đồ hoàn toàn không tính đến việc mã hóa và thay vào đó chỉ đề xuất rằng các ký tự dữ liệu ánh xạ trực tiếp tới các ký tự URI, điều này tùy thuộc vào người dùng cá nhân quyết định có hay không và làm thế nào để mã hóa phần trăm các ký tự dữ liệu không thuộc bộ dành riêng hoặc không dành riêng.

Common characters after percent-encoding [ASCII or UTF-8 based]newlinespace*20*21&0&2*24*25*26*27&1*29*30*31*32&3*34 or *35 or *36*37*38*39*40*41*42*43*44*45*46*47*48*49*50*51

Mã hóa URL %22 là gì?

Mã hóa URL từ %00 đến %8f

Làm cách nào để phân tích cú pháp URL trong Python?

Cách phân tích cấu trúc URL bằng Python .
nhập gấu trúc dưới dạng pd từ urllib. phân tích cú pháp nhập urlparse
url = "http. //flyandlure. org/articles/fly_fishing/fly_fishing_diary_july_2020?.
bộ phận = urlparse[url] bộ phận
thư mục = bộ phận. .
phần tử = url_parser[url]
url = [ 'https. //www. Google. com/tìm kiếm?

%20 được mã hóa là gì?

Mã hóa URL [Mã hóa phần trăm] . URL không được chứa khoảng trắng. Mã hóa URL thường thay thế khoảng trắng bằng dấu cộng [+] hoặc bằng %20.

Làm cách nào để tạo một URL trong Python?

Khoa học dữ liệu thực tế sử dụng Python . Bất kỳ thư mục con nào của URL đều có thể được tìm nạp theo chương trình và sau đó một phần của nó có thể được thay thế bằng các giá trị mới để tạo URL mới. The requests module can help us build the URLS and manipulate the URL value dynamically. Any sub-directory of the URL can be fetched programmatically and then some part of it can be substituted with new values to build new URLs.

Chủ Đề