Alətlər14 dəq oxuma

    URL Kodlaşdırma və Dekodlaşdırma: Nə Vaxt və Niyə İstifadə Etməli

    URL kodlaşdırma və dekodlaşdırmasına yiyələnin. URL-ləri nə vaxt kodlaşdırmağı, necə işlədiyini və veb tərtibat və məlumat ötürülməsi üçün niyə vacib olduğunu öyrənin.

    Michael Chen

    Michael Chen

    İnvestisiya Analitiki

    2025 M05 28
    URL Kodlaşdırma və Dekodlaşdırma: Nə Vaxt və Niyə İstifadə Etməli

    Giriş

    URL kodlaşdırma və dekodlaşdırma bir çox tərtibatçının qarşılaşdığı, lakin tam başa düşmədikləri veb tərtibatda əsas anlayışlardır. Yəqin ki, %20 və ya %3D kimi qəribə simvolları olan URL-lər görmüsünüz, amma onların nə demək olduğunu və nə vaxt istifadə edilməli olduğunu bilirsinizmi?

    Bu bələdçi URL kodlaşdırma və dekodlaşdırmanı aydınlaşdıracaq, veb tərtibat layihələrinizdə onları nə vaxt, niyə və necə istifadə etməli olduğunuzu izah edəcək.

    URL Kodlaşdırma Nədir?

    URL kodlaşdırma, həmçinin faiz kodlaşdırma kimi tanınır, simvolları internet üzərindən təhlükəsiz ötürülə bilən formata çevirən prosesdir. O, təhlükəsiz olmayan və ya rezerv edilmiş simvolları % və ardınca iki onaltılıq rəqəmlə əvəz edir.

    URL Kodlaşdırmanın Mövcud Olma Səbəbi

    URL-lərin təhlükəsiz istifadə edilə bilən məhdud simvol dəsti var:

    • Rezerv edilməmiş simvollar: A-Z, a-z, 0-9 və bir neçə xüsusi simvol (-, _, ., ~)
    • Rezerv edilmiş simvollar: URL-lərdə xüsusi mənaya malikdir (/, ?, #, &, =, və s.)
    • Təhlükəsiz olmayan simvollar: URL-lərdə problemlərə səbəb ola bilər (boşluqlar, qeyri-ASCII simvollar və s.)

    Kodlaşdırma Prosesi

    Simvol kodlaşdırılmalı olduqda:

    1. Simvolu onun ASCII/UTF-8 bayt dəyərinə çevirin
    2. Həmin baytı iki onaltılıq rəqəm kimi təqdim edin
    3. Əvvəlinə % simvolu əlavə edin

    Nümunə: Boşluq simvolu (ASCII 32 = 0x20) %20 olur

    Ümumi Kodlaşdırılmış Simvollar

    Tez-tez Kodlaşdırılan Simvollar

    Boşluq     → %20
    !           → %21
    "           → %22
    #           → %23
    $           → %24
    %           → %25
    &           → %26
    '           → %27
    (           → %28
    )           → %29
    *           → %2A
    +           → %2B
    ,           → %2C
    /           → %2F
    :           → %3A
    ;           → %3B
    =           → %3D
    ?           → %3F
    @           → %40
    [           → %5B
    \           → %5C
    ]           → %5D
    ^           → %5E
    `           → %60
    {           → %7B
    |           → %7C
    }           → %7D
    ~           → %7E
    

    Xüsusi Hallar

    Boşluq: %20 və ya + (sorğu sətrlərində) kimi kodlaşdırıla bilər Qeyri-ASCII Simvollar: UTF-8 bayt təsviri istifadə edərək kodlaşdırılır Unicode Simvollar: Çox baytlı kodlaşdırma (məs., é → %C3%A9)

    URL Kodlaşdırmasını Nə Vaxt İstifadə Etməli

    1. Sorğu Parametrləri

    Problem: Sorğu parametrləri xüsusi simvollar ehtiva edə bilər Həll: Parametr dəyərlərini kodlaşdırın

    Nümunə:

    Pis:  /search?q=salam dünya&category=veb tərtibat
    Yaxşı: /search?q=salam%20d%C3%BCnya&category=veb%20t%C9%99rtibat
    

    2. Yol Seqmentləri

    Problem: URL yolları xüsusi simvollar ehtiva edə bilər Həll: Yol seqmentlərini kodlaşdırın

    Nümunə:

    Pis:  /files/mənim sənədim.pdf
    Yaxşı: /files/m%C9%99nim%20s%C9%99n%C9%99dim.pdf
    

    3. Forma Məlumatlarının Göndərilməsi

    Problem: Forma məlumatları rezerv edilmiş simvollar ehtiva edə bilər Həll: Göndərilmədən əvvəl forma dəyərlərini kodlaşdırın

    Nümunə:

    <form action="/submit" method="get">
      <input name="email" value="[email protected]">
      <!-- [email protected] → user%40example.com olur -->
    </form>
    

    4. API Sorğuları

    Problem: API parametrləri xüsusi simvollar ehtiva edə bilər Həll: API çağırışlarında parametrləri kodlaşdırın

    Nümunə:

    const query = "salam dünya";
    const url = `https://api.example.com/search?q=${encodeURIComponent(query)}`;
    // Nəticə: https://api.example.com/search?q=salam%20d%C3%BCnya
    

    5. URL-lərdə Fayl Adları

    Problem: Fayl adları boşluqlar və ya xüsusi simvollar ehtiva edə bilər Həll: URL-lərdə fayl adlarını kodlaşdırın

    Nümunə:

    Pis:  /downloads/mənim faylım (2024).pdf
    Yaxşı: /downloads/m%C9%99nim%20fayl%C4%B1m%20%282024%29.pdf
    

    URL Dekodlaşdırma

    URL dekodlaşdırma əks prosesdir—kodlaşdırılmış simvolları orijinal formalarına çevirmək.

    Nə Vaxt Dekodlaşdırmaq Lazımdır

    1. URL Parametrlərinin İşlənməsi: Sorğu sətirlərindən dəyərləri çıxarın
    2. URL-lərin Təhlili: URL-ləri komponentlərə ayırın
    3. URL-lərin Göstərilməsi: İstifadəçilərə oxuna bilən URL-lər göstərin
    4. API Cavabları: API-dən alınan məlumatları dekodlaşdırın

    Dekodlaşdırma Prosesi

    1. İki hex rəqəmi ilə % tapın
    2. Hex rəqəmləri onluq sistemə çevirin
    3. Müvafiq simvolla əvəz edin

    Nümunə: %20 → Boşluq (0x20 = 32 = boşluq simvolu)

    Praktik Nümunələr

    Nümunə 1: Sorğu Parametrlərinin Kodlaşdırılması

    // JavaScript
    const params = {
      name: "Vüsal Məmmədov",
      email: "[email protected]",
      message: "Salam, dünya!"
    };
    
    const queryString = Object.entries(params)
      .map(([key, value]) => 
        `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
      )
      .join('&');
    
    // Nəticə: name=V%C3%BCsal%20M%C9%99mm%C9%99dov&email=vusal%40example.com&message=Salam%2C%20d%C3%BCnya%21
    

    Nümunə 2: URL-lərin Təhlükəsiz Qurulması

    function buildURL(base, path, params) {
      const encodedPath = path.split('/')
        .map(segment => encodeURIComponent(segment))
        .join('/');
      
      const queryString = Object.entries(params)
        .map(([key, value]) => 
          `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
        )
        .join('&');
      
      return `${base}${encodedPath}?${queryString}`;
    }
    
    // İstifadə
    const url = buildURL('https://api.example.com', '/users/vüsal məmmədov', {
      filter: 'active',
      sort: 'name'
    });
    

    Nümunə 3: URL Parametrlərinin Dekodlaşdırılması

    function parseQueryString(queryString) {
      const params = {};
      const pairs = queryString.split('&');
      
      for (const pair of pairs) {
        const [key, value] = pair.split('=');
        params[decodeURIComponent(key)] = decodeURIComponent(value || '');
      }
      
      return params;
    }
    
    // İstifadə
    const query = "name=V%C3%BCsal%20M%C9%99mm%C9%99dov&email=vusal%40example.com";
    const params = parseQueryString(query);
    // { name: "Vüsal Məmmədov", email: "[email protected]" }
    

    Müxtəlif Dillərdə Kodlaşdırma Funksiyaları

    JavaScript

    // Bütün URL-i kodlaşdır
    encodeURI("https://example.com/boşluqlu yol/fayl.html")
    // "https://example.com/bo%C5%9Fluqlu%20yol/fayl.html"
    
    // Komponenti kodlaşdır (daha aqressiv)
    encodeURIComponent("salam dünya")
    // "salam%20d%C3%BCnya"
    
    // Dekodlaşdır
    decodeURI("https://example.com/bo%C5%9Fluqlu%20yol/fayl.html")
    decodeURIComponent("salam%20d%C3%BCnya")
    

    Əsas Fərq:

    • encodeURI(): URL-i kodlaşdırır, lakin URL strukturunu qoruyur
    • encodeURIComponent(): Hər şeyi kodlaşdırır, sorğu parametrləri üçün istifadə edin

    Python

    from urllib.parse import quote, unquote, urlencode
    
    # Kodlaşdır
    quote("salam dünya")
    # "salam%20d%C3%BCnya"
    
    # Dekodlaşdır
    unquote("salam%20d%C3%BCnya")
    # "salam dünya"
    
    # Sorğu parametrlərini kodlaşdır
    urlencode({"name": "Vüsal Məmmədov", "age": 30})
    # "name=V%C3%BCsal+M%C9%99mm%C9%99dov&age=30"
    

    PHP

    // Kodlaşdır
    urlencode("salam dünya");
    // "salam+d%C3%BCnya"
    
    rawurlencode("salam dünya");
    // "salam%20d%C3%BCnya"
    
    // Dekodlaşdır
    urldecode("salam+d%C3%BCnya");
    rawurldecode("salam%20d%C3%BCnya");
    

    Ümumi Səhvlər

    Səhv 1: İkiqat Kodlaşdırma

    Problem: Artıq kodlaşdırılmış sətirləri kodlaşdırmaq

    // PİS
    encodeURIComponent(encodeURIComponent("salam dünya"))
    // "salam%2520d%C3%BCnya" (ikiqat kodlaşdırılmış)
    
    // YAXŞI
    encodeURIComponent("salam dünya")
    // "salam%20d%C3%BCnya"
    

    Səhv 2: Bütün URL-in Kodlaşdırılması

    Problem: Komponentlər əvəzinə tam URL-in kodlaşdırılması

    // PİS
    encodeURIComponent("https://example.com/search?q=salam dünya")
    // :, /, ? və s. daxil olmaqla bütün URL-i kodlaşdırır
    
    // YAXŞI
    const base = "https://example.com/search";
    const query = encodeURIComponent("salam dünya");
    const url = `${base}?q=${query}`;
    

    Səhv 3: Xüsusi Simvolları Kodlaşdırmamaq

    Problem: Müəyyən simvolların təhlükəsiz olduğunu güman etmək

    // PİS - & sorğu sətirini pozacaq
    const url = `/search?q=salam&dünya&category=texnologiya`;
    
    // YAXŞI
    const url = `/search?q=${encodeURIComponent("salam&dünya")}&category=texnologiya`;
    

    Səhv 4: Ardıcıl Olmayan Kodlaşdırma

    Problem: Kodlaşdırılmış və kodlaşdırılmamış dəyərləri qarışdırmaq

    // PİS
    const url = `/search?q=salam dünya&category=texnologiya`; // Boşluq kodlaşdırılmayıb
    
    // YAXŞI
    const url = `/search?q=${encodeURIComponent("salam dünya")}&category=texnologiya`;
    

    Ən Yaxşı Təcrübələr

    1. Həmişə İstifadəçi Girişini Kodlaşdırın

    İstifadəçi girişinə URL-lərdə heç vaxt etibar etməyin. Həmişə kodlaşdırın:

    • Forma məlumatları
    • Axtarış sorğuları
    • Fayl adları
    • İstifadəçi tərəfindən təqdim edilən hər hansı məlumat

    2. Müvafiq Funksiyalardan İstifadə Edin

    • URL komponentləri: encodeURIComponent() istifadə edin
    • Tam URL-lər: encodeURI() istifadə edin və ya komponentləri ayrıca kodlaşdırın
    • Forma məlumatları: Forma kodlaşdırmasından və ya encodeURIComponent() istifadə edin

    3. İşləyərkən Dekodlaşdırın

    Həmişə dekodlaşdırın:

    • URL-lərdən parametrləri çıxararkən
    • API cavablarını işləyərkən
    • İstifadəçilərə URL-ləri göstərərkən
    • Sorğu sətirlərini təhlil edərkən

    4. Sərhəd Halları İdarə Edin

    • Qeyri-ASCII simvollar (UTF-8 kodlaşdırma)
    • Çox uzun URL-lər (bölmə tələb oluna bilər)
    • Müxtəlif kontekstlərdə xüsusi simvollar
    • Brauzerlərdə kodlaşdırma fərqləri

    Təhlükəsizlik Mülahizələri

    URL İneksiya Hücumları

    Risk: URL-lərdə zərərli kod Həll: Dekodlaşdırılmış dəyərləri həmişə yoxlayın və təmizləyin

    // PİS - Dekodlaşdırılmış dəyərin birbaşa istifadəsi
    const userInput = decodeURIComponent(urlParam);
    document.innerHTML = userInput; // XSS riski
    
    // YAXŞI - Dekodlaşdırmadan sonra təmizləyin
    const userInput = sanitize(decodeURIComponent(urlParam));
    document.textContent = userInput;
    

    Məlumat Sızması

    Risk: URL-lərdə həssas məlumat Həll: Həssas məlumatı heç vaxt URL-lərdə, hətta kodlaşdırılmış formada da yerləşdirməyin

    Nəticə

    URL kodlaşdırma və dekodlaşdırma veb tərtibatçıları üçün əsas bacarıqlardır. URL-ləri nə vaxt və necə kodlaşdırmağı başa düşmək pozulmuş keçidlərin, təhlükəsizlik problemlərinin və istifadəçi təcrübəsi problemlərinin qarşısını alır.

    Yadda saxlayın:

    • İstifadəçi girişi və ya xüsusi simvollarla URL qurarkən kodlaşdırın
    • URL-ləri işləyərkən və ya istifadəçilərə göstərərkən dekodlaşdırın
    • İstifadə etməzdən əvvəl dekodlaşdırılmış dəyərləri həmişə yoxlayın
    • Düzgün kontekst üçün düzgün funksiyadan istifadə edin

    URL kodlaşdırmasına yiyələnmək sizi daha effektiv veb tərtibatçı edəcək və daha möhkəm tətbiqlər yaratmağınıza kömək edəcək.

    Bizim URL Alətlərimizi İstifadə Edin

    1tool.dev-da URL-lərlə işləməyi sadə və təhlükəsiz edən güclü URL KodlayıcıURL Dekodlayıcı alətləri təklif edirik. API-lər yaradırsınız və ya veb sorğularını işləyirsiniz, alətlərimiz URL kodlaşdırmasını düzgün idarə etməyinizə kömək edir.

    URL kodlaşdırma alətlərimizi bu gün sınayın və URL-lərinizin həmişə düzgün formatlandırıldığından əmin olun!

    Michael Chen

    Michael Chen

    İnvestisiya Analitiki

    Şəxsi investisiya strategiyaları və bazar trendlərinə fokuslanmış investisiya analitiki.

    Əlaqəli yazılar

    JSON-u Başa Düşmək: Məlumat Formatlaşdırılması üçün Başlanğıc Bələdçisi
    Alətlər18 dəq oxuma

    JSON-u Başa Düşmək: Məlumat Formatlaşdırılması üçün Başlanğıc Bələdçisi

    Müasir veb inkişafında ən vacib məlumat formatlarından biri olan JSON (JavaScript Object Notation) əsaslarını öyrənin. Bu əhatəli bələdçi əsas sintaksisdən real dünya tətbiqlərə qədər hər şeyi əhatə edir.

    Michael Chen2025 M05 23
    Veb Tərtibatında Base64 Kodlaşdırmasından Necə İstifadə Etmək
    Alətlər16 dəq oxuma

    Veb Tərtibatında Base64 Kodlaşdırmasından Necə İstifadə Etmək

    Veb tərtibatında fundamental texnika olan Base64 kodlaşdırmasına yiyələnin. Şəkillər, data URL-ləri, API ünsiyyəti və daha çoxu üçün nə vaxt və necə istifadə edəcəyinizi öyrənin.

    Michael Chen2025 M05 24
    Regex Nümunələri İzah Edildi: Ümumi İstifadə Halları və Nümunələr
    Alətlər15 dəq oxuma

    Regex Nümunələri İzah Edildi: Ümumi İstifadə Halları və Nümunələr

    Bu əhatəli bələdçi ilə regex-də peşəkar olun. Ümumi regex nümunələrini, real dünya istifadə halllarını və sizi regex ekspertinə çevirəcək praktik nümunələri öyrənin.

    Michael Chen2025 M05 25