שאלה על URL

kikona126

New member
שאלה על URL

רציתי לברר, האם url שנכתב עם רווחים בתוכו הוא url תקין או לא?
לדוגמא: https://tt.com/kdds/fjfjf klk
האם url שזה יתקבל בשדה?
ומאיפה מגיעה השאלה:
1. תו הרווח נחשב כ unsecured carachter, והתו הזה משתנה ל20% ברגע שמכניסים לינק שכזה ובעצם מה ההבדל אם אני ארשום את זה במקום:
https://tt.com/kdds/fjfjf20%lk 

2. במסמכי הrfc אין התייחסות מפורשת לנושא. (או שיש ופספסתי אותה)

אני אשמח לחוות דעת בנושא.

תודה!
 

עמית ו

New member
כן ולא

רווח אינו תו חוקי בתוך URL.
מצד שני, אפשר להשתמש בכל תו בתוך שורת הכתובת של הדפדפן וזה יעבוד לך.
&nbsp
איך זה עובד? התשובה היא קידוד (או, בלע"ז - encoding), כל תו "לא חוקי" מוחלף בכמה תווים חוקיים, שמתורגמים אחר כך בחזרה. למשל, %20 במקום רווח (כפי שציינת).
מה עושים עם הרווח אחר כך בצד השרת - זו כבר בעייה של השרת. הפרוטוקול עצמו יודע להעביר אותיות מקודדות.
אפשר גם לשחק עם קידודים נוספים, ויש מיליון כלים שעושים את זה. למשל - http://meyerweb.com/eric/tools/dencoder/
 

kikona126

New member
תודה

בעצם אתה אומר שהאם השדה הזה יקבל לינק בצורה לא מקודדת תלוי באופן בו הסרבר שלנו מתרגם את הלינק לאחר מכן. כך שבעצם שווה להוסיף לבדיקה גם לינקים מקודדים.
מעניין אם הregex יקבל את הלינקים המקודדים ואם לא, אולי כבר הקליינט צריך לדעת לקדד אותם.
גם לregex יש מילון כלים, קצת יותר יפה מזה של ה url decoder...
 

עמית ו

New member
הפוך.

ברוב הדפדפנים, הקידוד נעשה אוטומטית (לכן אפשר לכתוב לינקים בעברית, למשל) - לשלוח לינק לא מקודד זה לא טריוויאלי (אני בטוח שאפשר לעשות משהו כזה עם טלנט, אבל לא ניסיתי).
במצב תקין (לפחות במקרים עליהם אני מצליח לחשוב כרגע), כל מיני חוקים של ביטויים רגולריים אמורים לבוא אחרי שהקידוד תורגם.
 
למעלה