[네트워크] URL과 URI

Robert.Yang·2023년 5월 27일
1

Network

목록 보기
34/59
post-thumbnail

이 포스트는 널널한 개발자님 강의를 참조하여 작성한 포스트입니다.

URL과 URI

  • Uniform Resource Locator
  • Uniform Resource Identifier

웹 기술을 이야기 앞에 있어서 기본적인 용어정리가 필요하다. 그 중에 가장 중요한 용어 2가지가 URL과 URI다. 우리가 앞서서 도메인에 대해 배웠다. 도메인에는 Domain Name과 Host Name으로 분리해서 생각하는게 좋다. 여기서 중요한게 URL이 있고 URI가 있는데 URL은 Uniform Resource Locator로 위치지정자로 말할 수 있고 URI는 Uniform Resource Identifier로 식별자라 말할 수 있다. 그럼 여기서 Resource는 무엇일까? 웹 기술이라는 것에 한정지어서 생각해보자. 웹을 이야기할 때 가장 중요한게 HTML문서이고 그걸 실어나르기 위한 HTTP 프로토콜이 웹의 근간이 되는 기본이다. 그러니까 이것을 빗대어 생각해보면 Resource라는 것은 본질은 파일이다. 그러니까 HTML 파일의 위치 즉, 저장된 위치 그거 하나를 URL이라고 본다. 웹에서는 기본적으로 파일이 HTML일텐데 잘 생각해보면 요즘은 파일이 HTML만 있는것이 아니고 css도 있고 jpg같은 이미지도 있고 javascript도 있고 그외에 xml이니 json등 여러종류가 있을 텐데 결국 이 파일이라는 것이 위에서 말한 resource다.

그럼 URL과 URI에 대해 개념적으로 설명해야할 것이 우리가 Domain Name과 Host Name을 합친 예컨데 www.naver.com 같은것을 URL주소라고 많이 애기한다. 근데 사실 URL이란 것은 URI라는 큰 범주 안에 포함되는 subset개념이라고 생각하면 될것이다. 즉, 식별자를 표현하는 것이 조금 더 포괄적인 개념이고 위치를 말하게 되면 파일을 특정한다는 수준까지 간다고 보면 될 것이다. 그런데 이 모든 것을 기술적으로 표현하는 표준이 존재한다.

URI 구조

  • URI = scheme":"["//" authority]path["?"query]["#"fragment]
  • ex) scheme://userinfo@host:port/path?query#fragment

솔직히 웹에서는 위의 구조중에 userinfo라든지 @는 표현을 안하고 scheme://host:port/path?query#fragment등으로 표현을 많이 한다. 근데 이것을 보고 어려우신 분들을 위해 좀 더 쉽게 풀어쓰면 다음과 같다.

⚠️ 위의 예시를 든 주소는 진짜 예시일뿐 접속하면 무엇이 나올지 모르니 접속을 주의바란다.

보통의 경우 프로토콜을 http or https or ftp등으로 사용이 되고 www.test.co.kr이라는 것은 도메인 이름이다. 그럼 중요한게 뭐냐면 딱 http://www.test.co.kr 까지 오면 뭘 식별하는거냐면 이걸로 host 1대를 식별할 수 있다. 그러면 나머지는 어떤 무언가의 리소스가 될 수 있다. 즉, course.do부터 경로의 개념이 등장한다. 이 경로라는게 쉽게 생각해서 파일의 경로라고 생각하면 쉽다. 예를 들어 윈도우 파일 탐색기를 보면 C:\test\a.txt라는 파일경로처럼 이런식으로 경로를 특정할 수 있는데 이처럼 경로를 다 쓰는것을 절대경로 특정 폴더를 기준으로 특정 파일이나 폴더를 찾으려 할때 경로표현을 상대경로라고 한다.

그래서 이것을 웹으로 넘어가면 위 개념들이 확장된다. 예를들어 PC의 브라우저창에 www.test.co.kr을 입력해서 접속했다 가정해보자, 그런데 이걸 정확히 애기하면 www.test.co.kr/index.html을 호출한것과 동일한데 즉 이것은 html 파일을 수신받는 다는 것이다. 그러면 이 index.html파일은 서버의 /root/data/index.html의 경로에 파일을 수신하는데 우리는 주소창에 이렇게 파일경로를 다 작성하지 않고 접속이 가능하다. 그 이유는 서버의 기본 기준점이 /root/data이기 때문이고 이것을 기준으로 우리는 상대적 위치로 표현을 하기 때문이다.

http://www.test.co.kr/course.do?cmd=search&search_keyword=Test

위 url을 살펴보면 course.do라는 파일처럼 생긴 경로가 나오는데 이것은 일종의 request이고 이것을 통하여 html파일이든 json파일이든 호출이 된다. 그리고 parameter=value가 여러개면 &기호로 붙여 쓸 수 있다.

profile
모든 것을 즐길 줄 아는 개발자, 양성빈입니다.

0개의 댓글