Whiz Tools

यूआरएल स्ट्रिंग एस्केप करने वाला

URL स्ट्रिंग एस्केप टूल

परिचय

वेब विकास और इंटरनेट संचार के क्षेत्र में, URL (यूनिफॉर्म रिसोर्स लोकेटर्स) वेब पर संसाधनों की पहचान करने में महत्वपूर्ण भूमिका निभाते हैं। हालाँकि, URL में उन वर्णों पर प्रतिबंध हैं जिन्हें वे शामिल कर सकते हैं। कुछ वर्णों का विशेष अर्थ होता है, जबकि अन्य URL में उपयोग के लिए असुरक्षित होते हैं क्योंकि उनके गलत व्याख्या या प्रसारण के दौरान भ्रष्ट होने की संभावना होती है।

URL एन्कोडिंग, जिसे प्रतिशत-एन्कोडिंग भी कहा जाता है, विशेष वर्णों को एक ऐसे प्रारूप में परिवर्तित करने की एक विधि है जिसे इंटरनेट पर प्रसारित किया जा सकता है। यह उपकरण आपको एक URL स्ट्रिंग इनपुट करने और विशेष वर्णों को एस्केप करने की अनुमति देता है, यह सुनिश्चित करते हुए कि URL मान्य है और इसे वेब ब्राउज़रों और सर्वरों द्वारा सही ढंग से व्याख्या किया जा सकता है।

URL एन्कोडिंग को समझना

URL एन्कोडिंग क्या है?

URL एन्कोडिंग में असुरक्षित ASCII वर्णों को % द्वारा प्रतिस्थापित करना शामिल है, इसके बाद दो हेक्साडेसिमल अंक होते हैं जो वर्ण के ASCII कोड का प्रतिनिधित्व करते हैं। यह सुनिश्चित करता है कि जानकारी इंटरनेट पर बिना परिवर्तन के प्रसारित की जा सके।

उदाहरण के लिए, स्पेस वर्ण ' ' को %20 द्वारा प्रतिस्थापित किया जाता है।

URL एन्कोडिंग की आवश्यकता क्यों है?

URLs केवल ASCII कैरेक्टर सेट का उपयोग करके इंटरनेट पर भेजे जा सकते हैं। चूंकि URLs अक्सर ऐसे वर्णों को शामिल करते हैं जो इस सेट के बाहर होते हैं, उन्हें एक मान्य ASCII प्रारूप में परिवर्तित किया जाना चाहिए। URL एन्कोडिंग यह सुनिश्चित करती है कि विशेष वर्ण अनपेक्षित प्रभाव या वेब अनुरोधों में त्रुटियों का कारण न बनें।

जिन वर्णों को एन्कोडिंग की आवश्यकता होती है

RFC 3986 विनिर्देशन के अनुसार, निम्नलिखित वर्ण URL में आरक्षित होते हैं और यदि उन्हें शाब्दिक रूप से उपयोग किया जाना है तो उन्हें प्रतिशत-एन्कोड किया जाना चाहिए:

  • सामान्य विभाजक: :, /, ?, #, [, ], @
  • उप-विभाजक: !, $, &, ', (, ), *, +, ,, ;, =

इसके अतिरिक्त, किसी भी गैर-ASCII वर्ण, जिसमें यूनिकोड में वर्ण शामिल हैं, को एन्कोड किया जाना चाहिए।

URL एन्कोडिंग कैसे काम करती है?

एन्कोडिंग प्रक्रिया

  1. विशेष वर्णों की पहचान करें: URL स्ट्रिंग को पार्स करें और उन वर्णों की पहचान करें जो अनारक्षित ASCII वर्ण (अक्षर, अंक, -, ., _, ~) नहीं हैं।

  2. ASCII कोड में परिवर्तित करें: प्रत्येक विशेष वर्ण के लिए, इसका ASCII या यूनिकोड कोड प्वाइंट प्राप्त करें।

  3. UTF-8 बाइट अनुक्रम में परिवर्तित करें (यदि आवश्यक हो): गैर-ASCII वर्णों के लिए, एक या अधिक बाइट्स में वर्ण को UTF-8 एन्कोडिंग का उपयोग करके एन्कोड करें।

  4. हेक्साडेसिमल में परिवर्तित करें: प्रत्येक बाइट को इसके दो अंकीय हेक्साडेसिमल समकक्ष में परिवर्तित करें।

  5. प्रतिशत प्रतीक के साथ पूर्ववर्ती करें: प्रत्येक हेक्साडेसिमल बाइट के आगे % चिह्न लगाएं।

उदाहरण एन्कोडिंग

  • वर्ण: ' ' (स्पेस)

    • ASCII कोड: 32
    • हेक्साडेसिमल: 20
    • URL एन्कोडेड: %20
  • वर्ण: 'é'

    • UTF-8 एन्कोडिंग: 0xC3 0xA9
    • URL एन्कोडेड: %C3%A9

विचार करने के लिए किनारे के मामले

  • यूनिकोड वर्ण: गैर-ASCII वर्णों को UTF-8 में एन्कोड किया जाना चाहिए और फिर प्रतिशत-एन्कोड किया जाना चाहिए।

  • पहले से एन्कोडेड प्रतिशत चिह्न: प्रतिशत चिह्न जो प्रतिशत-एन्कोडिंग का हिस्सा होते हैं, उन्हें फिर से एन्कोड नहीं किया जाना चाहिए।

  • क्वेरी स्ट्रिंग में आरक्षित वर्ण: कुछ वर्णों का क्वेरी स्ट्रिंग में विशेष अर्थ होता है और उन्हें संरचना को बदलने से रोकने के लिए एन्कोड किया जाना चाहिए।

URL डिकोडिंग

URL डिकोडिंग क्या है?

URL डिकोडिंग URL एन्कोडिंग की विपरीत प्रक्रिया है। यह प्रतिशत-एन्कोडेड वर्णों को उनके मूल रूप में वापस परिवर्तित करता है, जिससे URL को मनुष्यों और प्रणालियों द्वारा पढ़ा और व्याख्या किया जा सके।

डिकोडिंग प्रक्रिया

  1. प्रतिशत-एन्कोडिंग अनुक्रमों की पहचान करें: URL स्ट्रिंग में सभी % प्रतीकों को खोजें जिनके बाद दो हेक्साडेसिमल अंक होते हैं।

  2. हेक्साडेसिमल को बाइट्स में परिवर्तित करें: प्रत्येक हेक्साडेसिमल मान को इसके समकक्ष बाइट में अनुवादित करें।

  3. UTF-8 बाइट्स को डिकोड करें (यदि आवश्यक हो): मल्टी-बाइट अनुक्रमों के लिए, बाइट्स को मिलाएं और उन्हें UTF-8 एन्कोडिंग का उपयोग करके डिकोड करें ताकि मूल वर्ण प्राप्त हो सके।

  4. एन्कोडेड अनुक्रमों को प्रतिस्थापित करें: प्रतिशत-एन्कोडेड अनुक्रमों को डिकोड किए गए वर्णों के साथ प्रतिस्थापित करें।

उदाहरण डिकोडिंग

  • एन्कोडेड: hello%20world

    • %20 एक स्पेस ' ' में अनुवादित होता है
    • डिकोडेड: hello world
  • एन्कोडेड: J%C3%BCrgen

    • %C3%A4 UTF-8 में 'ü' में अनुवादित होता है
    • डिकोडेड: Jürgen

URL डिकोडिंग का महत्व

URL डिकोडिंग तब आवश्यक होती है जब URL से उपयोगकर्ता इनपुट को संसाधित करना, क्वेरी पैरामीटर पढ़ना, या वेब अनुरोधों से प्राप्त डेटा की व्याख्या करना हो। यह सुनिश्चित करता है कि URL से निकाली गई जानकारी उसके उचित, इच्छित रूप में हो।

उपयोग के मामले

वेब विकास

  • क्वेरी पैरामीटर: त्रुटियों या सुरक्षा कमजोरियों से बचाने के लिए क्वेरी पैरामीटर में उपयोगकर्ता इनपुट को एन्कोड करना।

  • पथ पैरामीटर: URL पथ में गतिशील डेटा को सुरक्षित रूप से शामिल करना।

डेटा प्रसारण

  • API और वेब सेवाएँ: यह सुनिश्चित करना कि API को भेजा गया डेटा सही ढंग से प्रारूपित है।

  • अंतर्राष्ट्रीयकरण: विभिन्न भाषाओं के वर्णों के साथ URLs का समर्थन करना।

सुरक्षा

  • इंजेक्शन हमलों को रोकना: इनपुट को एन्कोड करना ताकि क्रॉस-साइट स्क्रिप्टिंग (XSS) और अन्य इंजेक्शन हमलों के जोखिम को कम किया जा सके।

विकल्प

हालांकि URL एन्कोडिंग आवश्यक है, कुछ परिदृश्यों में अन्य एन्कोडिंग विधियाँ अधिक उपयुक्त हो सकती हैं:

  • बेस64 एन्कोडिंग: URLs के भीतर बाइनरी डेटा को एन्कोड करने के लिए या जब उच्च जानकारी घनत्व की आवश्यकता हो।

  • प्रतिशत-एन्कोडिंग के बिना UTF-8 एन्कोडिंग: कुछ प्रणालियाँ सीधे UTF-8 एन्कोडिंग का उपयोग करती हैं, लेकिन यह ठीक से संभाले जाने पर समस्याएँ पैदा कर सकती है।

आपके आवेदन की विशिष्टताओं पर विचार करें ताकि सबसे उपयुक्त एन्कोडिंग विधि का चयन किया जा सके।

इतिहास

URL एन्कोडिंग को 1990 के दशक में URL और URI (यूनिफॉर्म रिसोर्स आइडेंटिफायर) मानकों की प्रारंभिक विशिष्टताओं के साथ पेश किया गया था। विशेष वर्णों को एन्कोड करने के लिए एक सुसंगत तरीके की आवश्यकता विश्व स्तर पर उपयोग किए जाने वाले विविध प्रणालियों और वर्ण सेटों से उत्पन्न हुई।

मुख्य मील के पत्थर में शामिल हैं:

  • RFC 1738 (1994): URLs को परिभाषित किया और प्रतिशत-एन्कोडिंग को पेश किया।

  • RFC 3986 (2005): URI सिंटैक्स को अपडेट किया, एन्कोडिंग के नियमों को परिष्कृत किया।

समय के साथ, URL एन्कोडिंग वेब प्रौद्योगिकियों के लिए अनिवार्य हो गई है, यह सुनिश्चित करते हुए कि विभिन्न प्रणालियों और प्लेटफार्मों के बीच विश्वसनीय संचार हो।

कोड उदाहरण

यहाँ विभिन्न प्रोग्रामिंग भाषाओं में URL एन्कोडिंग करने के उदाहरण दिए गए हैं:

' Excel VBA उदाहरण
Function URLEncode(ByVal Text As String) As String
    Dim i As Integer
    Dim CharCode As Integer
    Dim Char As String
    Dim EncodedText As String

    For i = 1 To Len(Text)
        Char = Mid(Text, i, 1)
        CharCode = AscW(Char)
        Select Case CharCode
            Case 48 To 57, 65 To 90, 97 To 122, 45, 46, 95, 126 ' 0-9, A-Z, a-z, -, ., _, ~
                EncodedText = EncodedText & Char
            Case Else
                If CharCode < 0 Then
                    ' यूनिकोड वर्णों को संभालें
                    EncodedText = EncodedText & "%" & Hex(65536 + CharCode)
                Else
                    EncodedText = EncodedText & "%" & Right("0" & Hex(CharCode), 2)
                End If
        End Select
    Next i
    URLEncode = EncodedText
End Function

' उपयोग:
' =URLEncode("https://example.com/?name=Jürgen")
% MATLAB उदाहरण
function encodedURL = urlEncode(url)
    import java.net.URLEncoder
    encodedURL = char(URLEncoder.encode(url, 'UTF-8'));
end

% उपयोग:
% encodedURL = urlEncode('https://example.com/?name=Jürgen');
## Ruby उदाहरण
require 'uri'

url = 'https://example.com/path?query=hello world&name=Jürgen'
encoded_url = URI::DEFAULT_PARSER.escape(url)
puts encoded_url
## आउटपुट: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
// Rust उदाहरण
use url::form_urlencoded;

fn main() {
    let url = "https://example.com/path?query=hello world&name=Jürgen";
    let encoded_url = percent_encode(url);
    println!("{}", encoded_url);
    // आउटपुट: https://example.com/path%3Fquery%3Dhello%20world%26name%3DJ%C3%BCrgen
}

fn percent_encode(input: &str) -> String {
    use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC};
    utf8_percent_encode(input, NON_ALPHANUMERIC).to_string()
}
## Python उदाहरण
import urllib.parse

url = 'https://example.com/path?query=hello world&name=Jürgen'
encoded_url = urllib.parse.quote(url, safe=':/?&=')
print(encoded_url)
## आउटपुट: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
// JavaScript उदाहरण
const url = 'https://example.com/path?query=hello world&name=Jürgen';
const encodedURL = encodeURI(url);
console.log(encodedURL);
// आउटपुट: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
// Java उदाहरण
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public class URLEncodeExample {
    public static void main(String[] args) throws Exception {
        String url = "https://example.com/path?query=hello world&name=Jürgen";
        String encodedURL = URLEncoder.encode(url, StandardCharsets.UTF_8.toString());
        // स्पेस के लिए "+" को "%20" से प्रतिस्थापित करें
        encodedURL = encodedURL.replace("+", "%20");
        System.out.println(encodedURL);
        // आउटपुट: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello%20world%26name%3DJ%C3%BCrgen
    }
}
// C# उदाहरण
using System;
using System.Net;

class Program
{
    static void Main()
    {
        string url = "https://example.com/path?query=hello world&name=Jürgen";
        string encodedURL = Uri.EscapeUriString(url);
        Console.WriteLine(encodedURL);
        // आउटपुट: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
    }
}
<?php
// PHP उदाहरण
$url = 'https://example.com/path?query=hello world&name=Jürgen';
$encodedURL = urlencode($url);
echo $encodedURL;
// आउटपुट: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello+world%26name%3DJ%C3%BCrgen
?>
// Go उदाहरण
package main

import (
    "fmt"
    "net/url"
)

func main() {
    urlStr := "https://example.com/path?query=hello world&name=Jürgen"
    encodedURL := url.QueryEscape(urlStr)
    fmt.Println(encodedURL)
    // आउटपुट: https%3A%2F%2Fexample.com%2Fpath%3Fquery%3Dhello+world%26name%3DJ%25C3%25BCrgen
}
// Swift उदाहरण
import Foundation

let url = "https://example.com/path?query=hello world&name=Jürgen"
if let encodedURL = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
    print(encodedURL)
    // आउटपुट: https://example.com/path?query=hello%20world&name=J%C3%BCrgen
}
## R उदाहरण
url <- "https://example.com/path?query=hello world&name=Jürgen"
encodedURL <- URLencode(url, reserved = TRUE)
print(encodedURL)
## आउटपुट: https://example.com/path?query=hello%20world&name=J%C3%BCrgen

नोट: आउटपुट प्रत्येक भाषा द्वारा आरक्षित वर्णों और स्पेस को संभालने के तरीके के आधार पर थोड़ा भिन्न हो सकता है (जैसे, स्पेस को %20 या + के रूप में एन्कोड करना)।

URL एन्कोडिंग प्रक्रिया का SVG आरेख

URL एन्कोडिंग प्रक्रिया मूल URL विशेष वर्णों की पहचान करें URL एन्कोड करें उदाहरण: इनपुट: https://example.com/über uns आउटपुट: https://example.com/%C3%BCber%20uns

सुरक्षा विचार

URL एन्कोडिंग और डिकोडिंग सुरक्षा के लिए महत्वपूर्ण हैं:

  • इंजेक्शन हमलों को रोकें: उपयोगकर्ता इनपुट को एन्कोड करना यह सुनिश्चित करता है कि दुर्भावनापूर्ण कोड निष्पादित नहीं हो, जिससे क्रॉस-साइट स्क्रिप्टिंग (XSS) और SQL इंजेक्शन जैसे जोखिम कम होते हैं।

  • डेटा अखंडता: यह सुनिश्चित करता है कि डेटा बिना परिवर्तन या भ्रष्टाचार के प्रसारित किया जाए।

  • मानकों के अनुपालन: एन्कोडिंग मानकों का पालन करने से प्रणालियों के बीच इंटरऑपरेबिलिटी समस्याओं से बचा जा सकता है।

संदर्भ

  1. RFC 3986 - यूनिफॉर्म रिसोर्स आइडेंटिफायर (URI): https://tools.ietf.org/html/rfc3986
  2. URL एन्कोडिंग क्या है और यह कैसे काम करती है? https://www.urlencoder.io/learn/
  3. प्रतिशत-एन्कोडिंग: https://en.wikipedia.org/wiki/Percent-encoding
  4. URL मानक: https://url.spec.whatwg.org/
  5. URI.escape अप्रचलित है: https://stackoverflow.com/questions/2824126/why-is-uri-escape-deprecated

निष्कर्ष

URL एन्कोडिंग वेब विकास और इंटरनेट संचार का एक आवश्यक पहलू है। विशेष वर्णों को एक सुरक्षित प्रारूप में परिवर्तित करके, यह सुनिश्चित करता है कि URLs को ब्राउज़रों और सर्वरों द्वारा सही ढंग से व्याख्या किया जाए, डेटा ट्रांसमिशन की अखंडता और सुरक्षा बनाए रखी जाए। यह उपकरण आपके URLs में विशेष वर्णों को एस्केप करने के लिए एक सुविधाजनक तरीका प्रदान करता है, संगतता बढ़ाता है और संभावित त्रुटियों या सुरक्षा कमजोरियों को रोकता है।

प्रतिक्रिया