응용(애플리케이션)계층의 특징과 애플리케이션
TCP/IP 모델의 4계층 중 네트워크 인터페이스 계층, 인터넷 계층, 전송 계층이 데이터 전송을 담당하고, 응용 계층은 통신의 목적인 서비스를 실현하기 위해 서비스의 종류나 동작 방식 등을 결정한다. 따라서 응용 계층의 역할은 서비스를 제공하는 서버 애플리케이션과 서비스를 요청하는 클라이언트 애플리케이션이 구현한다. 따라서 응용 계층은 애플리케이션을 사용하는 사용자가 체감할 수 있는 계층이지만, 나머지 3개의 하위 계층은 사용자가 평소 의식하지 않고 당연하게 사용하는 인프라 단의 계층이라고 할 수 있다. 이처럼 데이터 전송은 나머지 3계층에서 알아서 처리해주기 때문에 애플리케이션 개발자는 데이터 전송을 신경쓰지 않고 서비스 구현에 집중할 수 있다….
응용 계층의 동작 방식과 프로토콜
응용 계층은 클라이언트와 서버가 서로 메세지를 보내는 방식으로 동작한다. 예를 들어 웹 서비스의 클라이언트인 웹 브라우저가 웹 서버에게 특정 웹 페이지를 요청하는 메세지를 보낸다. 서버는 해당 메세지를 읽고, 웹 브라우저가 요청하는 웹 페이지를 담은 응답을 웹 브라우저에 보낸다. 이처럼 응용 계층은 서버와 클라이언트가 메시지라는 데이터 단위를 사용하여 요청(request)와 응답(response)를 주고받으면서 서비스를 구현한다.
클라이언트와 서버가 어떤 방식으로 요청과 응답을 할 것인지는 응용 계층의 프로토콜이 정한다. 따라서 응용 계층에는 다른 계층과 달리 서비스 종류만큼 다양한 프로토콜이 있다.
URL
URL의 의미
URL(Uniform Resource Locator)은 인터넷에 존재하는 리소스(Resource, 자원)의 위치를 지정하는 방법이다. URL의 리소스는 인터넷에서 서비스를 제공하기 위해 이용되는 문서, 이미지, 음성, 동영상 파일 등을 의미한다. 다시말해 URL은 인터넷에서 다양한 종류의 서비스를 제공하는 서버 컴퓨터에 저장된 파일의 위치를 표시하는 주소이며, 이 주소로 클라이언트가 원하는 서비스를 특정하게 된다.
예를 들어, 그림3과 같이 웹 서비스를 제공하는 웹 서버는 자신만의 특징이 담긴 서비스를 제공하는 리소스(index.html 등)가 저장된 위치인 URL을 공개하고, 웹 서비스를 요청하는 클라이언트인 웹 브라우저는 원하는 서비스의 리소스가 저장된 URL을 입력함으로써 그 서비스를 사용하겠다는 의사를 전달하는것이다.
파일 경로(path)
서버 컴퓨터에서 폴더명과 파일명 처럼 디렉토리(Directory)를 사용하여 파일을 저장한다. 디렉토리는 계층구조가 있어 최상위 디렉토리를 루트라고 부르고, 상위 디렉토리를 부모 디렉토리, 하위 디렉토리를 자식 디렉토리라고 부른다.
주로 CUI(Character User Interface)방식의 운영체제를 사용하는 서버 컴퓨터에 저장된 파일의 경로는 ‘디렉토리명/파일명’으로 표시한다.
내 컴퓨터에서는 파일 경로만 알면 파일에 접근할 수 있지만, 클라이언트가 서버 컴퓨터에 저장된 파일에 접근하기 위해서는 파일 경로 뿐만 아니라 서버 컴퓨터의 위치도 알아야 한다.
URL의 형식(URL의 구성 요소)
URL은 그림 4와 같이 애플리케이션이 제공하는 서비스의 종류를 식별하는 스킴(scheme), 인터넷에서 사용하는 서버 주소인 도메인(또는 IP주소), 애플리케이션을 식별하는 포트 번호와 파일 경로로 구성된다.
서비스의 종류를 나타내는 스킴은 주로 응용 계층의 프로토콜로 표시한다. (참고로 스킴 뒤에 이어지는 ‘//’는 아무 의미가 없다고 한다?. (ㅋㅋㅋㅋㅋㅋㅋㅋ) URL을 고안한 팀 버너스 리도 ‘//’는 쓸모가 없으며 자신의 실수 때문에 URL을 입력하는데 시간을 낭비하게해서 미안하다고 했다고..)
웹 브라우저에서는 주로 웹서비스를 제공하는 http프로토콜을 많이 사용해서 http를 스킴으로 쓰지만, ftp등 다른 스킴을 사용하여 다른 서비스를 사용하기도 한다.
서버의 주소는 IP 주소를 사용할 수도 있지만, 보통은 기억하기 편한 도메인(또는 호스트 이름)을 많이 사용한다.
절대 URL과 상대 URL
URL은 절대 URL과 상대 URL 두가지로 나뉜다. 스킴부터 파일 경로까지 리소스에 접근하는데 필요한 모든 정보를 가지고 있는 URL을 절대 URL(Absolute URL)이라고 한다. 절대 URL을 짧게 표기하여 리소스에 접근하기 위한 일부 정보만을 담고 있는 URL을 상대 URL(Relative URL)이라고 한다.
스킴이나 도메인 같이 웹 서버가 제공하는 리소스에 공통적으로 사용되는 URL 부분을 기준 URL(Base URL)로 정하고, 절대 URL에서 기준 URL을 생략한 나머지 부분만 표시하는 것이 상대 URL이다.
클라이언트가 처음 웹 서버에 접속할 때는 절대 URL을 사용해야 하지만, 웹 서버에 한번 접속한 이후 웹 서버의 리소스를 사용할 때에는 상대 URL을 사용해서 웹사이트를 만드는 것이 효율적이다. 웹 브라우저 사용자가 상대 URL로 웹 서버의 리소스에 접근할 수 있는 것은 웹 브라우저가 기본 URL을 사용해 상대 URL을 절대 URL로 변환하는 기능을 갖고 있기 때문이다.
클라이언트의 특정 서비스 요청
클라이언트는 서버에게 서비스를 요청할 때 URL을 사용하여 원하는 서비스를 특정한다. 예를 들어 클라이언트가 'http://www.better-together.com/network/index.html'라는 URL을 사용하여 서비스를 요청하면, 인터넷에서 www.better-together.com이라는 주소를 가진 웹(http) 서버에 설치된 포트 번호 80번을 가진 애플리케이션이 만든 network라는 디렉토리 안에 있는 index.html이라는 파일을 전송해 달라는 요청이다.
파일 경로명이 아무것도 없이 IP 주소(나 도메인)만 들어오는 경우에는 서버 애플리케이션의 최상위 디렉토리인 루트 디렉토리 아래에 저장되어 있는 파일에 접근하게 된다. 서버 측에서 파일 경로가 지정되지 않았을 때 클라이언트에게 보여줄 웹 페이지를 미리 설정된 파일명 (주로 index.html)으로 루트 디렉토리에 저장해 놓기 때문이다. 따라서 사용자가 www.google.com이라고 입력한 URL은 www.google.com/index.html과 동일한 의미를 가진다.
(출처: https://better-together.tistory.com/144)
본 내용은 제가 네트워크 공부를하며 위 블로그를 참고해 정리한 내용이어서 스스로가 이해하기 쉽도록 말을 길게 풀어 쓴 구간이 많습니다. 위 블로그에서 깔끔하고 상세하게 설명을 잘 하고 있기 때문에 공부를하는 분들은 위 블로그로 확인해보시는것도 추천드립니다~
'네트워크' 카테고리의 다른 글
[OSI 7-Layer] 표현 계층 (0) | 2023.04.22 |
---|---|
[OSI 7-Layer] 세션 계층 (0) | 2023.04.22 |
[TCP/IP] 전송 계층 (0) | 2023.04.22 |
[TCP/IP] 인터넷 계층 (0) | 2023.04.22 |
[TCP/IP] 네트워크 인터페이스 계층 (1) | 2022.11.29 |