Zauważyłem, że https://stackoverflow.com//////////questions/4659504/ jest prawidłowym adresem URL. Jednak https://www.google.com//////////analytics/settings nie jest. Czy istnieją różnice związane z technologiami serwera WWW, które to wyjaśniają? Czy URL z niepotrzebnymi ukośnikami powinien być interpretowany poprawnie, czy powinien zwrócony błąd?Czy niepotrzebne ukośniki w adresie URL są nieprawidłowe?
Odpowiedz
Po pierwsze, dodanie slasha zmienia semantykę ścieżki URL tak jak każda inna postać. Tak więc z definicji /foo/bar
i /foo//bar
nie są równoważne, tak jak /foo/bar
i /foo/bar/
nie są równoważne.
Ale ponieważ ścieżka URL jest stosowany głównie do być bezpośrednio mapowane na systemie plików, serwery WWW często usuwanie pustych segmentów ścieżek (Apache robi), tak że /foo//bar
i /foo/bar
są obsługiwane równoważnie. Ale nie jest to oczekiwane zachowanie; to raczej zrobić dla korekcji błędów.
Obaj są prawidłowymi adresami URL.
Jednak serwer Google nie może obsłużyć drugiego.
Nie ma konkretnego powodu, aby obsługiwać lub odrzucać adresy URL z duplikatami ukośników; powinieneś poświęcić więcej czasu na ważniejsze rzeczy.
Istnieje różnica w sposobie przetwarzania żądań przez każdą aplikację. Jeśli skonfigurujesz aplikację tak, by zastępowała kolejne ukośniki przed trasowaniem żądania, nie powinieneś mieć żadnych problemów.
Co uważasz za "poprawnie zinterpretowane"? Protokół HTTP określa tylko, w jaki sposób dane przed slashiem po nazwie serwera zostaną zinterpretowane. Resztę należy wyłącznie do serwera WWW. Parsuje to, co dajesz po tym punkcie (w jakikolwiek sposób lubi) i prezentuje ci cały HTML, który wydaje się dostarczać dla tego tekstu.
- 1. Kątowa Wszystkie ukośniki w adresie URL zostały zmienione na% 2F
- 2. Wyrażenie ruby: zastąp podwójne ukośniki w adresie URL
- 3. Jakie znaki są poprawne w adresie URL?
- 4. Czy identyfikatory (ObjectId from mongo) są bezpieczne w adresie URL?
- 5. Arabskie znaki w adresie URL
- 6. Czy możemy używać & w adresie URL?
- 7. Czy oczekiwania są niepotrzebne, jeśli w moim teście są weryfikacje?
- 8. Czy niepotrzebne są dodatkowe pliki narzutów?
- 9. Usuń niepotrzebne ukośniki z danej ścieżki za pomocą bashu
- 10. Co oznacza/#!/W adresie URL?
- 11. Javascript wykorzystywane w adresie URL
- 12. odpowiednio uciec ukośniki URL w regex
- 13. Czy parametry tablic w szynach są gwarantowane w kolejności, w jakiej pojawiają się w adresie URL?
- 14. Dekodowanie ze znaków zbiegów w adresie URL
- 15. Masz dwa? w adresie URL - czy jest prawidłowy?
- 16. AngularJS: opcjonalny język w adresie URL
- 17. Pozwolenie na gwiazdkę w adresie URL
- 18. Wiele znaków skrótu w adresie URL
- 19. Czy istnieje sposób przekazywania zmiennych javascript w adresie URL?
- 20. file_get_contents - znaki specjalne w adresie URL
- 21. Jak mogę zasymulować wizytę w adresie URL?
- 22. Szyny kropka zamiast ukośnika w adresie URL
- 23. Jak mogę wysłać PHPSESSID w adresie URL?
- 24. Django UpdateView bez pk w adresie URL
- 25. Jak zamienić znaki specjalne w adresie URL?
- 26. Internet Explorer ignoruje hashtag w adresie URL
- 27. odczytaj zmienne GET w adresie URL JQuery
- 28. Uciekający znak ampersand w adresie URL
- 29. Jak rozszyfrować "\ u0026" w adresie URL?
- 30. Jak ukryć wartość przycisku w adresie URL?
Ups, oznaczono niewłaściwą rzecz, zignoruj proszę. – cybermonkey