💬 Спросят с вероятностью 6%
URL encoding (кодирование URL), также известное как percent encoding, это процесс преобразования символов в URL в формат, который может быть передан через интернет. Это необходимо, потому что URL могут содержать только определенный набор символов (ASCII), и некоторые символы имеют специальное значение в URL (например,
?, &, #). URL encoding заменяет небезопасные символы на их процент-кодированные эквиваленты.Основные моменты:
1️⃣ Символы, подлежащие кодированию:
➕ Символы, которые не входят в набор безопасных символов ASCII: пробелы, специальные символы, такие как
&, ?, /, и не-ASCII символы.➕ Пробелы кодируются как
%20 или +.➕ Специальные символы заменяются на их шестнадцатеричные представления, предшествуемые знаком процента (
%).2️⃣ Примеры кодирования:
➕ Пробел (
) → %20 или +
➕ Символ амперсанда (
&) → %26
➕ Символ вопросительного знака (
?) → %3F
➕ Символ решетки (
#) → %23Пример URL encoding
Вручную:
Оригинальный URL: https://www.example.com/search?query=hello world&category=books
Закодированный URL: https://www.example.com/search?query=hello%20world&category=books
Осуществление URL encoding
Предоставляет классы и методы для выполнения URL encoding. Наиболее часто используемые из них - это
URLEncoder и URLDecoder.Использование класса URLEncoder
Используется для кодирования URL-строк.
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class UrlEncodingExample {
public static void main(String[] args) {
try {
String originalUrl = "https://www.example.com/search?query=hello world&category=books";
String query = "hello world";
String category = "books";
// Кодирование параметров запроса
String encodedQuery = URLEncoder.encode(query, "UTF-8");
String encodedCategory = URLEncoder.encode(category, "UTF-8");
// Формирование закодированного URL
String encodedUrl = "https://www.example.com/search?query=" + encodedQuery + "&category=" + encodedCategory;
System.out.println("Закодированный URL: " + encodedUrl);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
Использование класса URLDecoder
Используется для декодирования URL-строк.
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class UrlDecodingExample {
public static void main(String[] args) {
try {
String encodedUrl = "https://www.example.com/search?query=hello%20world&category=books";
// Извлечение и декодирование параметров запроса
String encodedQuery = "hello%20world";
String encodedCategory = "books";
String decodedQuery = URLDecoder.decode(encodedQuery, "UTF-8");
String decodedCategory = URLDecoder.decode(encodedCategory, "UTF-8");
System.out.println("Декодированный query: " + decodedQuery);
System.out.println("Декодированная category: " + decodedCategory);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
Важные моменты
1️⃣ Кодировка:
➕ Убедитесь, что используете правильную кодировку (обычно
UTF-8), чтобы избежать проблем с несовместимостью символов.2️⃣ Кодирование только параметров:
➕ Кодируйте только значения параметров, а не весь URL. Например, в
https://www.example.com/search?query=hello world, кодируйте только hello world.URL encoding используется для преобразования специальных символов в URL в безопасный для передачи формат. Это можно сделать с помощью классов
URLEncoder и URLDecoder. Кодирование необходимо для правильной передачи данных через URL и предотвращения проблем с интерпретацией символов на сервере.🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых