반응형
Java에서 URI와 URL은 둘 다 자원의 위치를 나타내기 위해 사용되지만, 둘 사이에는 몇 가지 중요한 차이점이 있습니다.
URI (Uniform Resource Identifier)
URI는 인터넷 자원의 식별자를 나타내는 일반적인 용어입니다. URI는 URL과 URN(Uniform Resource Name)을 모두 포함하는 개념입니다.
- 형식: URI는 scheme, authority, path, query, fragment의 다섯 가지 구성 요소로 이루어집니다.
- 예시: http://example.com:8080/docs/resource1.html?name=example#section2
- scheme: http
- authority: example.com:8080
- path: /docs/resource1.html
- query: name=example
- fragment: section2
Java에서 URI를 사용하는 경우, 주로 java.net.URI 클래스를 사용합니다.
import java.net.URI;
public class URIDemo {
public static void main(String[] args) {
try {
URI uri = new URI("http://example.com:8080/docs/resource1.html?name=example#section2");
System.out.println("Scheme: " + uri.getScheme());
System.out.println("Authority: " + uri.getAuthority());
System.out.println("Path: " + uri.getPath());
System.out.println("Query: " + uri.getQuery());
System.out.println("Fragment: " + uri.getFragment());
} catch (Exception e) {
e.printStackTrace();
}
}
}
URL (Uniform Resource Locator)
URL은 자원의 위치를 구체적으로 나타내는 URI의 한 형태입니다. URL은 자원의 위치뿐만 아니라 자원에 접근하기 위한 방법도 포함합니다.
- 형식: URL은 일반적으로 scheme, host, port, path, query로 구성됩니다.
- 예시: http://example.com:8080/docs/resource1.html?name=example
- scheme: http
- host: example.com
- port: 8080
- path: /docs/resource1.html
- query: name=example
Java에서 URL을 사용하는 경우, 주로 java.net.URL 클래스를 사용합니다.
import java.net.URL;
public class URLDemo {
public static void main(String[] args) {
try {
URL url = new URL("http://example.com:8080/docs/resource1.html?name=example");
System.out.println("Protocol: " + url.getProtocol());
System.out.println("Host: " + url.getHost());
System.out.println("Port: " + url.getPort());
System.out.println("Path: " + url.getPath());
System.out.println("Query: " + url.getQuery());
} catch (Exception e) {
e.printStackTrace();
}
}
}
주요 차이점 요약
- 개념적 범위:
- URI는 URL을 포함하는 더 넓은 개념입니다. 모든 URL은 URI이지만, 모든 URI가 URL은 아닙니다.
- 기능:
- URI는 자원의 식별자 역할을 합니다.
- URL은 자원의 위치와 접근 방법을 명시합니다.
- 구성 요소:
- URI는 더 일반적인 형태로, URN(Uniform Resource Name)도 포함할 수 있습니다.
- URL은 일반적으로 특정한 프로토콜을 통해 자원에 접근할 수 있는 경로를 제공합니다.
이 차이점을 이해하면, Java 프로그램에서 URI와 URL을 적절하게 사용할 수 있습니다.
반응형
'Programming > Java, Kotlin' 카테고리의 다른 글
[Java] hashCode, equals 메소드 정의, 차이 (0) | 2024.06.22 |
---|---|
[Java] AOP 란? AOP 장점, 사용 예시 (0) | 2024.06.22 |
[Java] Spring Boot 특정 url 로 리다이렉션 하기 (0) | 2024.06.15 |
[Java] length, length(), size() 차이 (0) | 2024.05.24 |
[Java] 형 변환 (0) | 2024.05.24 |