URI против URL против URN

Есть много дискуссий, сообщений, комментариев и вопросов по Интернету, чтобы различать URI, URL и URN. Один answer на SO объясните об этом, но я запутался в результате реализации в моем коде.

Q: Если URI является супер-набором URL-адреса, то как получилось, что он имеет следующий результат:

URI : /XXX/abc.do 

URL : http://examplehost:8080/XXX/abc.do

Когда я напишу код ниже:

System.out.println("URI : "+ httpRequestObj.getRequestURI());
System.out.println("URL : "+ httpRequestObj.getRequestURL());

EDIT: Не могли бы вы предоставить подробный ответ, сохранив JAVA и оригинальную концепцию URI, URL и URN в области.

Привет,

Арун Кумар

+3
источник поделиться
2 ответа

Если URI - это супер-набор URL-адресов, то как получится этот следующий вывод...

Определения URI и URL не могут использоваться для вывода поведения getRequestURI() и getRequestURL(). Чтобы понять, что возвращают методы, вам необходимо прочитать javadocs и спецификацию Servlet.

Смысл этих методов заключается в том, что они есть потому, что API HttpRequest эволюционировал с течением времени, и эта эволюция должна была поддерживать обратную совместимость.

getRequestURI() возвращает URI, а getRequestURL() возвращает URL-адрес, но URI и URL-адреса для разных вещей.

+1
источник

java.net.URI API дает хорошее объяснение:

URI - это унифицированный идентификатор ресурса, в то время как URL-адрес является единым локатором ресурсов. Следовательно, каждый URL-адрес является URI, абстрактно говоря, но не каждый URI является URL-адресом. Это связано с тем, что существует еще одна подкатегория URI, унифицированные имена ресурсов (URN), которые называют ресурсы, но не определяют, как их найти. Приведенные выше сообщения электронной почты, новостей и isbn URI являются примерами URN.

+4
источник

Посмотрите другие вопросы по меткам или Задайте вопрос