URL Encoding چیست؟ (مبانی علمی)
استاندارد اینترنت برای آدرسهای وب (URL)، تنها اجازه استفاده از مجموعه کاراکترهای محدودی به نام US-ASCII را میدهد. این یعنی حروف الفبای انگلیسی، اعداد و چند علامت خاص. اگر بخواهیم از حروف فارسی، کاراکترهای ویژه (مثل فاصله، @، #) یا ایموجیها در آدرس استفاده کنیم، مرورگر باید آنها را به فرمتی تبدیل کند که برای سرور قابل فهم باشد. این فرآیند URL Encoding یا Percent-encoding نام دارد. در این روش، هر بایت غیرمجاز به صورت یک علامت درصد % و دو رقم هگزادسیمال نمایش داده میشود.
جدول کاراکترهای رزرو شده (RFC 3986)
␣
%20فاصله خالی/
%2Fجداکننده مسیر:
%3Aجداکننده پورت?
%3Fشروع کوئری=
%3Dمقداردهی&
%26اتصال پارامترها@
%40ایمیل/کاربر#
%23فرگمنتمثالهای واقعی (فارسی)
متن اصلی:سلام دنیا
%D8%B3%D9%84%D8%A7%D9%85%20%D8%AF%D9%86%DB%8C%D8%A7
URL کامل:https://site.com/جستجو
https://site.com/%D8%AC%D8%B3%D8%AA%D8%AC%D9%88
مشکلات رایج سئو (SEO)
- لینکهای فارسی طولانی: وقتی انکد میشوند بسیار طولانی شده و ممکن است از حد مجاز 2048 کاراکتر بگذرد.
- انکد مضاعف (Double Encoding): اگر یک متن را دو بار انکد کنید، %20 تبدیل به %2520 میشود و لینک خراب میشود.
- استفاده از فاصله در نام فایلها: همیشه فاصله را با خط تیره (-) جایگزین کنید تا URL خوانا و تمیز بماند.
- عدم هماهنگی سرور: برخی سرورهای قدیمی لینوکس با نام فایلهای فارسی انکد شده مشکل دارند.
سوالات متداول
چرا فاصله به + تبدیل میشود؟▼
در استاندارد قدیمی application/x-www-form-urlencoded فاصلهها با
+ جایگزین میشدند (مثل فرمهای جستجوی گوگل). اما در استاندارد جدیدتر Percent-encoding فاصله باید به %20 تبدیل شود. این ابزار از استاندارد %20 استفاده میکند که امنتر است.آیا URL فارسی برای سئو بد است؟▼
خیر، گوگل کاملاً متوجه لینکهای فارسی میشود. اما کپی کردن آنها در تلگرام یا واتساپ باعث ایجاد لینکهای طولانی و زشت میشود. برای اشتراکگذاری بهتر است از کوتاهکننده لینک استفاده کنید.
کاراکتر BOM چیست؟▼
گاهی اوقات در ابتدای فایلهای متنی یک کاراکتر نامرئی به نام Byte Order Mark وجود دارد. اگر این کاراکتر وارد URL شود، به صورت
%EF%BB%BF ظاهر میشود و ممکن است باعث خطای 404 شود.