URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요.궁금증이 생겨서 질문을드립니다.
URI가 URL, URN을 포함 하고 있다고 영한님이 말씀 하셨고,그림에서도 나와 있습니다.

ㅇ

(글씨는 캡쳐 안되서 프린트 스크린으로 짤름)
저가 스프링 핵심원리 -기본편 에서 logDemo를 처음 만들 때 URL를 해야 하는데 URI를 쓰고 스프링을 실행 한 적이 있었습니다.
그때 그냥 바로 get한 기억이 나서 살펴 보고 시범해보니, HttpServletRequest에 코드가 있는 것을 확인할수 있었습니다.

사진 처럼 말이죠. (실행하고, 로그 및 sout를 확인 한 다음 중단)
여기서 질문이 생깁니다.
URI 가 URL 및 URN을 포함하고 있다면, 저가 생각 하기에 URI 안에 URL 및 URN를 만드는 코드가 될 것 같은데요.
URI uri = new URI();
uri.getUrl();
uri.getUrn();이런 코드 처럼요 , 근데 왜 이런 코드 처럼 하지 않고 같이 놔뒀는지 궁금합니다.
답변 부탁 드립니다.
답변 1
1
안녕하세요, 인프런 AI 인턴입니다. 생각하는자님.
자바나 스프링에서는 URI, URL, URN을 별도로 다루지 않고 있는 이유는, 자바의 기본 라이브러리가 이미 URI와 URL을 명확하게 구분해서 사용하도록 설계되어 있기 때문입니다. 여기서 주요 차이점은 URL은 주로 웹 주소를 나타내고, 자원을 위치시키기 위한 방법을 제공하는 것이고, URI는 보다 일반적인 개념으로 자원을 식별하는 작업을 담당합니다.
URI 클래스 자체가 URL과 URN을 포괄하는 구조를 설계하지 않은 이유는, 실제 프로그래밍에서 URL과 URI가 갖는 의미적 차이 때문입니다. 예를 들어, 스프링이나 다른 웹 애플리케이션에서는 주로 URL을 사용하여 리소스를 가져오고 관리합니다.
즉, 기본 API 설계 철학상 URI와 URL은 다른 클래스로 제공되며, URL이 웹의 리소스를 가져오기 위한 특수한 케이스로 사용됩니다. 실제로 코드에서는 아래와 같은 방식으로 사용됩니다:
URI myUri = new URI("http://example.com");
URL myUrl = new URL("http://example.com");
두 클래스의 사용 목적이 다르기 때문에 자바에서는 이 둘을 명확히 구분하여 사용하고 있으며, 이 점은 설계상의 이유로 특별히 분리되어 있습니다.
더 궁금한 점이나 도와드릴 부분이 있으면 언제든지 말씀해 주세요!
캐시무효화시 그냥 no-store만 넣어되지 않나요?
0
63
2
API의 헤더와 바디에 대한 문의 입니다.
0
67
2
수정폼과 수정
0
65
1
쿠키에 대해 질문드려요!
0
84
2
서버에서 캐시 검증 헤더를 직접 처리해야 하나요?
0
81
1
http api get, post 멱등
0
38
1
컬렉션의 개념
0
45
1
시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?
0
49
1
PATCH 는 PUT처럼 멱등이여야 하지 않나요?
0
77
1
리소스 질문드립니다
0
53
1
IP 패킷 질문입니다.
0
56
1
html from, http api
0
72
2
브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요
0
118
1
stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.
0
96
1
host와 port
0
105
1
tcp/ip는 연결을 유지? 아니면 유지하지 않음?
0
139
1
다음 강의 커리큘럼 질문!!
0
127
2
캐시 개념에 대해서 설명하시지는 않으시는건가요?
0
109
1
클라이언트가 patch, delete 요청 시 알아야 하는 url
0
86
1
html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유
0
165
2
비 연결성(connectionless) 강의에서 질문입니다~
0
136
1
PATCH를 사용하지 못할 때 왜 POST?
0
155
2
협상과 우선순위3 질문드립니다.
1
125
1
주소창 인젝션?
0
113
1





