Kikimbia cha Msururu wa URL kwa Wahusika Maalum
Chombo cha mtandaoni cha kukimbia wahusika maalum katika msururu wa URL. Ingiza URL, na chombo hiki kitaandika kwa kukimbia wahusika maalum, kuhakikisha kuwa ni salama kwa matumizi katika programu za wavuti.
Mchoro wa URL
Nyaraka
Chombo cha Kukwepa Mifumo ya URL
Utangulizi
Katika ulimwengu wa maendeleo ya wavuti na mawasiliano ya Mtandao, URL (Mifumo ya Rasilimali za Umma) ina jukumu muhimu katika kutambua rasilimali kwenye wavuti. Hata hivyo, URL zina vikwazo juu ya wahusika wanaoweza kuwa ndani yake. Wahusika fulani wana maana maalum, wakati wengine si salama kwa matumizi katika URL kutokana na uwezekano wa kutafsiriwa vibaya au kuharibika wakati wa usafirishaji.
Kuweka mifumo ya URL, pia inajulikana kama kuweka asilimia, ni utaratibu wa kubadilisha wahusika maalum kuwa muundo ambao unaweza kusafirishwa kwenye Mtandao. Chombo hiki kinakuwezesha kuingiza mfuatano wa URL na kukwepa wahusika maalum, kuhakikisha kuwa URL ni halali na inaweza kutafsiriwa kwa usahihi na vivinjari vya wavuti na seva.
Kuelewa Kuweka Mifumo ya URL
Nini Kimeweka Mifumo ya URL?
Kuweka mifumo ya URL kunahusisha kubadilisha wahusika wasiokuwa salama wa ASCII na %
ikifuatiwa na tarakimu mbili za hex zinazoonyesha nambari ya ASCII ya wahusika. Hii inahakikisha kuwa habari inasafirishwa kwenye Mtandao bila kubadilishwa.
Kwa mfano, wahusika wa nafasi ' '
hubadilishwa na %20
.
Kwa Nini Kuweka Mifumo ya URL Kunahitajika?
URL zinaweza kutumwa kwenye Mtandao kwa kutumia seti ya wahusika wa ASCII pekee. Kwa kuwa URL mara nyingi zina wahusika nje ya seti hii, zinapaswa kubadilishwa kuwa muundo halali wa ASCII. Kuweka mifumo ya URL kunahakikisha kuwa wahusika maalum hawawezi kusababisha athari zisizokusudiwa au makosa katika maombi ya wavuti.
Wahusika Wanaohitaji Kuwekwa
Kulingana na kiwango cha RFC 3986, wahusika ifuatayo ni akiba katika URL na lazima iwekwe asilimia ikiwa inapaswa kutumika kwa maana halisi:
- Wajumuishaji wa jumla:
:
,/
,?
,#
,[
,]
,@
- Wajumuishaji wa sehemu:
!
,$
,&
,'
,(
,)
,*
,+
,,
,;
,=
Zaidi ya hayo, wahusika wowote wasiokuwa wa ASCII, ikiwa ni pamoja na wahusika katika Unicode, lazima wawekwe.
Kazi ya Kuweka Mifumo ya URL
Utaratibu wa Kuweka
-
Tambua Wahusika Maalum: Changanua mfuatano wa URL na tambua wahusika ambao si wahusika wa ASCII wasio akiba (herufi, nambari,
-
,.
,_
,~
). -
Badilisha kuwa Nambari ya ASCII: Kwa kila wahusika maalum, pata nambari yake ya ASCII au nambari ya Unicode.
-
Badilisha kuwa Mfuatano wa Byte za UTF-8 (ikiwa inahitajika): Kwa wahusika wasiokuwa wa ASCII, weka wahusika katika byte moja au zaidi kwa kutumia kuweka UTF-8.
-
Badilisha kuwa Hexadecimal: Badilisha kila byte kuwa thamani yake ya hexadecimal ya tarakimu mbili.
-
Ongeza Ishara ya Asilimia: Weka kila byte ya hexadecimal kwa ishara ya
%
.
Mfano wa Kuweka
-
Wahusika:
' '
(Nafasi)- Nambari ya ASCII:
32
- Hexadecimal:
20
- Imewekwa URL:
%20
- Nambari ya ASCII:
-
Wahusika:
'é'
- Kuweka UTF-8:
0xC3 0xA9
- Imewekwa URL:
%C3%A9
- Kuweka UTF-8:
Mambo ya Kuangalia
-
Wahusika wa Unicode: Wahusika wasiokuwa wa ASCII lazima waweke katika UTF-8 na kisha kuwekwa asilimia.
-
Ishara za asilimia zilizo tayari kuwekwa: Ishara za asilimia ambazo ni sehemu ya kuweka asilimia hazipaswi kuwekwa tena.
-
Wahusika wa Akiba katika Mfuatano wa Maswali: Wahusika fulani wana maana maalum katika mfuatano wa maswali na wanapaswa kuwekwa ili kuzuia kubadilisha muundo.
Kuweka Mifumo ya URL
Nini Kimeweka Mifumo ya URL?
Kuweka mifumo ya URL ni mchakato wa kinyume wa kuweka mifumo ya URL. Inabadilisha wahusika waliowekwa asilimia kuwa fomu yao ya asili, ikifanya URL iweze kusomeka na kueleweka na wanadamu na mifumo.
Utaratibu wa Kuweka
-
Tambua Mfuatano wa Kuweka Asilimia: Tafuta ishara zote za
%
zilizo na tarakimu mbili za hexadecimal katika mfuatano wa URL. -
Badilisha Hexadecimal kuwa Byte: Tafsiri kila thamani ya hexadecimal kuwa byte inayohusiana.
-
Weka Byte za UTF-8 (ikiwa inahitajika): Kwa mfuatano wa byte nyingi, ungana byte hizo na uweke kwa kutumia kuweka UTF-8 ili kupata wahusika wa asili.
-
Badilisha Mfuatano wa Kuweka: Badilisha mfuatano wa kuweka asilimia na wahusika waliowekwa.
Mfano wa Kuweka
-
Imewekwa:
hello%20world
%20
inatafsiriwa kuwa nafasi' '
- Imewekwa:
hello world
-
Imewekwa:
J%C3%BCrgen
%C3%A4
inatafsiriwa kuwa'ü'
katika UTF-8- Imewekwa:
Jürgen
Umuhimu wa Kuweka Mifumo ya URL
Kuweka mifumo ya URL ni muhimu wakati wa kushughulikia pembejeo za mtumiaji kutoka kwa URL, kusoma vigezo vya maswali, au kutafsiri data inayopokelewa kutoka kwa maombi ya wavuti. Inahakikisha kuwa habari iliyotolewa kutoka kwa URL iko katika fomu yake sahihi, iliyo kusudiwa.
Matumizi
Maendeleo ya Wavuti
-
Vigezo vya Maswali: Kuweka pembejeo za mtumiaji katika vigezo vya maswali ili kuzuia makosa au hatari za usalama.
-
Vigezo vya Njia: Kuongeza data ya dynamic salama katika njia za URL.
Usafirishaji wa Data
-
API na Huduma za Wavuti: Kuhakikisha data inayotumwa kwa API imewekwa vizuri.
-
Kimataifa: Kusaidia URL zenye wahusika kutoka lugha mbalimbali.
Usalama
- Kuzuia Mashambulizi ya Uingiliaji: Kuweka pembejeo ili kupunguza hatari ya uandishi wa msalaba (XSS) na mashambulizi mengine ya uingiliaji.
Mbadala
Ingawa kuweka mifumo ya URL ni muhimu, kuna hali ambapo mbinu nyingine za kuweka zinaweza kuwa bora zaidi:
-
Kuweka Base64: Kutumika kwa kuweka data ya binary ndani ya URL au wakati unahitaji wingi wa habari zaidi.
-
Kuweka UTF-8 bila Kuweka Asilimia: Mifumo mingine hutumia kuweka UTF-8 moja kwa moja, lakini hii inaweza kusababisha matatizo ikiwa haitashughulikiwa vizuri.
Fikiria maelezo ya programu yako ili kuchagua mbinu inayofaa zaidi ya kuweka.
Historia
Kuweka mifumo ya URL kuliwasilishwa pamoja na viwango vya mapema vya URL na URI (Mifumo ya Rasilimali za Umma) katika miaka ya 1990. Hitaji la njia ya kawaida ya kuweka wahusika maalum lilitokea kutokana na mifumo na seti za wahusika mbalimbali zinazotumika duniani kote.
Maalum muhimu ni pamoja na:
-
RFC 1738 (1994): Ilifafanua URL na kuanzisha kuweka asilimia.
-
RFC 3986 (2005): Ilisasisha sintaksia ya URI, ikirekebisha sheria za kuweka.
Kwa muda, kuweka mifumo ya URL imekuwa muhimu kwa teknolojia za wavuti, ikihakikisha mawasiliano ya kuaminika kati ya mifumo na majukwaa tofauti.
Mifano ya Kanuni
Hapa kuna mifano ya jinsi ya kufanya kuweka mifumo ya URL katika lugha mbalimbali za programu:
1' Mfano wa Excel VBA
2Function URLEncode(ByVal Text As String) As String
3 Dim i As Integer
4 Dim CharCode As Integer
5 Dim Char As String
6 Dim EncodedText As String
7
8 For i = 1 To Len(Text)
9 Char = Mid(Text, i, 1)
10 CharCode = AscW(Char)
11 Select Case CharCode
12 Case 48 To 57, 65 To 90, 97 To 122, 45, 46, 95, 126 ' 0-9, A-Z, a-z, -, ., _, ~
13 EncodedText = EncodedText & Char
14 Case Else
15 If CharCode < 0 Then
16 ' Shughulikia wahusika wa Unicode
17 EncodedText = EncodedText & "%" & Hex(65536 + CharCode)
18 Else
19 EncodedText = EncodedText & "%" & Right("0" & Hex(CharCode), 2)
20 End If
21 End Select
22 Next i
23 URLEncode = EncodedText
24End Function
25
26' Matumizi:
27' =URLEncode("https://example.com/?name=Jürgen")
28
1% Mfano wa MATLAB
2function encodedURL = urlEncode(url)
3 import java.net.URLEncoder
4 encodedURL = char(URLEncoder.encode(url, 'UTF-8'));
5end
6
7% Matumizi:
8% encodedURL = urlEncode('https://example.com/?name=Jürgen');
9
1## Mfano wa Ruby
2require 'uri'
3
4url = 'https://example.com/path?query=hello world&name=Jürgen'
5encoded_url = URI::DEFAULT_PARSER.escape(url)
6puts encoded_url
7## Matokeo: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
8
1// Mfano wa Rust
2use url::form_urlencoded;
3
4fn main() {
5 let url = "https://example.com/path?query=hello world&name=Jürgen";
6 let encoded_url = percent_encode(url);
7 println!("{}", encoded_url);
8 // Matokeo: https://example.com/path%3Fquery%3Dhello%20world%26name%3DJ%C3%BCrgen
9}
10
11fn percent_encode(input: &str) -> String {
12 use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC};
13 utf8_percent_encode(input, NON_ALPHANUMERIC).to_string()
14}
15
1## Mfano wa Python
2import urllib.parse
3
4url = 'https://example.com/path?query=hello world&name=Jürgen'
5encoded_url = urllib.parse.quote(url, safe=':/?&=')
6print(encoded_url)
7## Matokeo: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
8
1// Mfano wa JavaScript
2const url = 'https://example.com/path?query=hello world&name=Jürgen';
3const encodedURL = encodeURI(url);
4console.log(encodedURL);
5// Matokeo: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
6
1// Mfano wa Java
2import java.net.URLEncoder;
3import java.nio.charset.StandardCharsets;
4
5public class URLEncodeExample {
6 public static void main(String[] args) throws Exception {
7 String url = "https://example.com/path?query=hello world&name=Jürgen";
8 String encodedURL = URLEncoder.encode(url, StandardCharsets.UTF_8.toString());
9 // Badilisha "+" na "%20" kwa nafasi
10 encodedURL = encodedURL.replace("+", "%20");
11 System.out.println(encodedURL);
12 // Matokeo: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello%20world%26name%3DJ%C3%BCrgen
13 }
14}
15
1// Mfano wa C#
2using System;
3using System.Net;
4
5class Program
6{
7 static void Main()
8 {
9 string url = "https://example.com/path?query=hello world&name=Jürgen";
10 string encodedURL = Uri.EscapeUriString(url);
11 Console.WriteLine(encodedURL);
12 // Matokeo: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
13 }
14}
15
1<?php
2// Mfano wa PHP
3$url = 'https://example.com/path?query=hello world&name=Jürgen';
4$encodedURL = urlencode($url);
5echo $encodedURL;
6// Matokeo: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello+world%26name%3DJ%C3%BCrgen
7?>
8
1// Mfano wa Go
2package main
3
4import (
5 "fmt"
6 "net/url"
7)
8
9func main() {
10 urlStr := "https://example.com/path?query=hello world&name=Jürgen"
11 encodedURL := url.QueryEscape(urlStr)
12 fmt.Println(encodedURL)
13 // Matokeo: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello+world%26name%3DJ%25C3%25BCrgen
14}
15
1// Mfano wa Swift
2import Foundation
3
4let url = "https://example.com/path?query=hello world&name=Jürgen"
5if let encodedURL = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
6 print(encodedURL)
7 // Matokeo: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
8}
9
1## Mfano wa R
2url <- "https://example.com/path?query=hello world&name=Jürgen"
3encodedURL <- URLencode(url, reserved = TRUE)
4print(encodedURL)
5## Matokeo: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
6
Kumbuka: Matokeo yanaweza kutofautiana kidogo kulingana na jinsi kila lugha inavyoshughulikia wahusika wa akiba na nafasi (kwa mfano, kuweka nafasi kama %20
au +
).
Mchoro wa SVG wa Utaratibu wa Kuweka Mifumo ya URL
Maoni ya Usalama
Kuweka na kuweka mifumo ya URL kwa usahihi ni muhimu kwa usalama:
-
Kuzuia Mashambulizi ya Uingiliaji: Kuweka pembejeo za mtumiaji husaidia kuzuia msimbo mbaya usifanye kazi, kupunguza hatari kama vile uandishi wa msalaba (XSS) na mashambulizi mengine ya uingiliaji.
-
Uaminifu wa Data: Inahakikisha kuwa data inasafirishwa bila kubadilishwa au kuharibika.
-
Uzingatiaji wa Viwango: Kufuata viwango vya kuweka huzuia matatizo ya ushirikiano kati ya mifumo.
Marejeleo
- RFC 3986 - Kitambulisho cha Rasilimali (URI): https://tools.ietf.org/html/rfc3986
- Nini Kimeweka Mifumo ya URL na Inafanya Kazi? https://www.urlencoder.io/learn/
- Kuweka asilimia: https://en.wikipedia.org/wiki/Percent-encoding
- Kiwango cha URL: https://url.spec.whatwg.org/
- URI.escape ni ya zamani: https://stackoverflow.com/questions/2824126/why-is-uri-escape-deprecated
Hitimisho
Kuweka mifumo ya URL ni kipengele muhimu cha maendeleo ya wavuti na mawasiliano ya Mtandao. Kwa kubadilisha wahusika maalum kuwa muundo salama, inahakikisha kuwa URL zinatafsiriwa kwa usahihi na vivinjari na seva, ikihifadhi uaminifu na usalama wa usafirishaji wa data. Chombo hiki kinatoa njia rahisi ya kukwepa wahusika maalum katika URL zako, kuboresha ulinganifu na kuzuia makosa au hatari za usalama zinazoweza kutokea.
Maoni
Bonyeza toast ya maoni ili uanze kutoa maoni kuhusu chombo hiki