Whiz Tools

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

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

परिचय

वेब विकास आणि इंटरनेट संवादाच्या क्षेत्रात, URL (युनिफॉर्म रिसोर्स लोकेटर) वेबवर संसाधने ओळखण्यात महत्त्वाची भूमिका बजावतात. तथापि, URL मध्ये समाविष्ट केलेल्या वर्णांवर काही निर्बंध आहेत. काही वर्णांचे विशेष अर्थ आहेत, तर इतर सुरक्षित नाहीत कारण त्यांचा वापर URL मध्ये केल्यास चुकीच्या अर्थाने किंवा प्रसारणादरम्यान भ्रष्टाचार होऊ शकतो.

URL एन्कोडिंग, ज्याला टक्के-एन्कोडिंग असेही म्हणतात, हा विशेष वर्णांना इंटरनेटवर प्रसारित करण्यायोग्य स्वरूपात रूपांतरित करण्याचा एक यांत्रिक आहे. हे टूल तुम्हाला URL स्ट्रिंग इनपुट करण्याची आणि विशेष वर्णांना एस्केप करण्याची परवानगी देते, जेणेकरून URL वैध असेल आणि वेब ब्राउझर आणि सर्व्हरद्वारे योग्यरित्या समजला जाईल.

URL एन्कोडिंग समजून घेणे

URL एन्कोडिंग म्हणजे काय?

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

उदाहरणार्थ, स्पेस वर्ण ' ' चा बदल %20 केला जातो.

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

URL फक्त ASCII वर्ण संच वापरून इंटरनेटवर पाठवले जाऊ शकतात. URL मध्ये अनेकदा अशा वर्णांचा समावेश असतो जो या संचाबाहेर असतो, त्यामुळे त्यांना वैध ASCII स्वरूपात रूपांतरित करणे आवश्यक आहे. URL एन्कोडिंग हे सुनिश्चित करते की विशेष वर्ण अनपेक्षित प्रभाव किंवा वेब विनंत्या मध्ये त्रुटी निर्माण करत नाहीत.

एन्कोडिंग आवश्यक असलेल्या वर्णांची यादी

RFC 3986 विशिष्टतेनुसार, खालील वर्ण URL मध्ये आरक्षित आहेत आणि जर त्यांचा थेट वापर केला गेला तर त्यांना टक्के-एन्कोड केले पाहिजे:

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

याशिवाय, कोणतीही नॉन-ASCII वर्ण, ज्यामध्ये युनिकोडमधील वर्ण समाविष्ट आहेत, त्यांना एन्कोड करणे आवश्यक आहे.

URL एन्कोडिंग कसे कार्य करते?

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

  1. विशेष वर्णांची ओळख: URL स्ट्रिंगचे पार्सिंग करा आणि अशा वर्णांची ओळख करा जे असुरक्षित ASCII वर्ण (अक्षरे, अंक, -, ., _, ~) नाहीत.

  2. ASCII कोडमध्ये रूपांतरित करा: प्रत्येक विशेष वर्णासाठी, त्याचा ASCII किंवा युनिकोड कोड पॉइंट मिळवा.

  3. UTF-8 बाइट अनुक्रमात रूपांतरित करा (जर आवश्यक असेल): नॉन-ASCII वर्णांसाठी, एक किंवा अधिक बाइटमध्ये वर्ण एन्कोड करा.

  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 कडे पाठवलेले डेटा योग्यरित्या स्वरूपित आहे याची खात्री करणे.

  • आंतरराष्ट्रीयीकरण: विविध भाषांमधील वर्णांसह URL समर्थन करणे.

सुरक्षा

  • इंजेक्शन हल्ल्यांना प्रतिबंध: क्रॉस-साइट स्क्रिप्टिंग (XSS) आणि इतर इंजेक्शन हल्ल्यांच्या जोखमी कमी करण्यासाठी इनपुट एन्कोड करणे.

पर्याय

URL एन्कोडिंग आवश्यक असले तरी, काही परिस्थितींमध्ये इतर एन्कोडिंग पद्धती अधिक योग्य असू शकतात:

  • बेस64 एन्कोडिंग: URL मध्ये बायनरी डेटा एन्कोड करण्यासाठी किंवा उच्च माहिती घनता आवश्यक असताना वापरले जाते.

  • टक्के-एन्कोडिंगशिवाय UTF-8 एन्कोडिंग: काही प्रणाली थेट UTF-8 एन्कोडिंग वापरतात, परंतु हे योग्यरित्या हाताळले नाही तर समस्यांना जन्म देऊ शकते.

तुमच्या अनुप्रयोगाच्या विशिष्टतेनुसार सर्वात योग्य एन्कोडिंग पद्धत निवडणे आवश्यक आहे.

इतिहास

URL एन्कोडिंग 1990 च्या दशकात URL आणि URI (युनिफॉर्म रिसोर्स आयडेंटिफायर) मानकांच्या प्रारंभिक विशिष्टतेसह सादर केले. विशेष वर्णांचे एकसारखेपणाने एन्कोड करण्याची आवश्यकता जगभरातील विविध प्रणाली आणि वर्ण संचांमुळे उद्भवली.

महत्त्वाचे टप्पे समाविष्ट आहेत:

  • RFC 1738 (1994): URL परिभाषित केले आणि टक्के-एन्कोडिंग सादर केले.

  • 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 मध्ये विशेष वर्णांना एस्केप करण्याचा एक सोयीस्कर मार्ग प्रदान करते, सुसंगतता वाढवते आणि संभाव्य त्रुटी किंवा सुरक्षा असुरक्षा टाळते.

अभिप्राय