2018년 11월 5일 월요일

[Java] URL과 URI에 대하여

이번시간에는 URI, URL에 대해서 살펴보자.

먼저, URI는 URN과 URL을 포괄하는 광범위한 개념이다.

예전의(지금도 그렇지만,) 인터넷 웹사이트의 URL을 살펴보면 해당 주소가 서버안에 존재하는 디렉터리에 있는 파일을 의미하는 것을 말한다.
즉 해당 웹 사이트의 소스코드로 정의한 파일을 우리는 웹의 주소, URL이라는 것을 통해서 우리에게 제공된다.

하지만 요새는 URI의 개념이 조금 더 많이 쓰이는 것 같다.

웹 사이트의 페이지를 요청하면 URL처럼 파일이 있는 것과 다르게 사용자가 원하는 페이지를 보여주도록 하는 것이다.(라우팅 설정과 비슷하다.) 그래서 웹 개발자가 작성한 소스코드가 있는 파일이 아닌, 경로를 지정해서 사용자가 원하는 페이지에 맞게 보여지도록 하는 것이다.

URL방식에 대해서 살펴보자

1. 클라이언트(사용자)가 웹 서버에 페이지를 요청한다. (Request)

2. 서버는 해당 클라이언트에 맞는 페이지를 가져와 보여준다. (Response) 이때 헤더와 URL주소를 가지고 오게 된다.

3. 클라이언트는 요청받는 웹 페이지를 서핑한다.

Java언어를 통해 URL의 호스트, 프로토콜, 포트, 초기값 포트을 찾아내는 것을 살펴보자.

 1. 해당 URL에 대한 정보들을 살펴보기. 

  1. package org.java.project3;
  2. import java.net.MalformedURLException;
  3. import java.net.URL;
  4. class URLExam{
  5.     public URL url;
  6.     public int port1, port2;
  7.     public String host;
  8.     public String protocol;
  9.    
  10.     public URLExam(String address){
  11.         try {
  12.             this.url = new URL(address);
  13.             this.port1 = this.url.getPort();
  14.             this.port2 = this.url.getDefaultPort();
  15.             this.host = this.url.getHost();
  16.             this.protocol = this.url.getProtocol();
  17.         } catch(MalformedURLException e) {
  18.             e.printStackTrace();
  19.         }
  20.     }
  21. }
  22. public class UrlTest {
  23.     public static void main(String[] args) {
  24.         String address = "http://itqomcom.blogspot.com:8080";
  25.         URLExam url = new URLExam(address);
  26.         System.out.println("URL Address : " + url.url);
  27.         System.out.println("Port1 : " + url.port1);
  28.         System.out.println("Default Port : " + url.port2);
  29.         System.out.println("Protocol : " + url.protocol);
  30.     }
  31. }

 ▶실행결과

URL Address : http://itqomcom.blogspot.com:8080
Port1 : 8080
Default Port : 80
Protocol : http








댓글 없음:

댓글 쓰기

[Java] N-I/O(Non-Blocking) 파일 읽기 쓰기 - GatheringByteChannel, ScatteringByteChannel, ByteBuffer 사용.

우리는 지금까지 다음과 같이 살펴보았다. 1.  InputStream / OutputStream : 입, 출력 스트림을 바이트로 처리하여 읽기, 쓰기. 2.  FileInputStream / FileOutputStream : 입, 출력 스트림을 ...