devops

클라이언트와 서버 아키텍처, 도메인과 DNS 본문

DevOps

클라이언트와 서버 아키텍처, 도메인과 DNS

vata500 2022. 4. 25. 15:55
반응형

클라이언트 - 서버 아키텍처

클라이언트(client)와 서버(server)는 요청과 응답을 주고 받는 관계다. 요청이 선행되고 그 후에 응답이 온다.

클라이언트(리소스를 사용하는 앱) - 서버(리소스를 전달해주는 앱) - 데이터베이스(리소스 저장 공간)

서버는 일반적으로 리소스를 전달하는 역할을 한다. 리소스를 저장하는 공간을 별도로 마련하는 데 이를 '데이터베이스'라고 한다. 이 구조를 3티어 아키텍처라고 한다.

API(Application Programming Interface)

서버는 클라이언트에게 리소스를 활용할 수 있도록 인터페이스를 제공하는데 이를 API라고 한다.

주로 클아이언트와 서버는 서로 HTTP라는 프로토콜(통신 규약, 약속)을 이용하여 요청과 응답을 주고받는데, 주소(URL, URI)를 통해 접근할 수 있다. 이 때 HTTP를 이용해 주고받는 메시지를 'HTTP 메시지'라고 한다.

주요 메소드

- 조회(Read) : GET
- 추가 (Create) : POST
- 갱신 (Update) : PUT 혹은 PATCH
- 삭제 (Delete) : DELETE

URL, URI

URL은 Uniform Resource Locator의 줄임말, 네트워크 상에서 웹 페이지, 이미지 동영상 등의 파일이 위치한 정보를 나타낸다. URL은 scheme, hosts, url-path로 구분할 수 있다.

- scheme은 통신 방식(프로토콜)을 결정한다. 일반적인 웹 브라우저는 http를 사용한다.
ex) file://, http://, https:// 

- hosts는 웹 서버의 이름이나 도메인, IP를 사용하여 주소를 나타낸다.
ex) 127.0.0.1(Local PC를 의미), www.google.com

- url-path는 웹 서버에서 지정한 루트 디렉토리부터 시작하여 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다.
ex) /search, /Users/username/Desktop

- port는 웹 서버에 접속하기 위한 통로를 의미한다
ex) :80, :443

- query는 웹 서버에 전달하는 추가 질문이다.
ex) q=Javascripts 

URI는 Uniform Resource Identifier로 일반적으로 URL의 기본 요소인 scheme, hosts, url-path에 더해서 query, bookmark를 포함한다.

query는 웹 서버에 보내는 추가적인 질문이다. 브라우저의 검색창을 클릭하면 나타나는 주소가 URI다. URI는 URL을 포함하는 상위개념이다. 

IP와 Port

IP는 Internet Protocol의 줄임말로 인터넷상에서 사용하는 주소체계를 의미한다. 크게 네덩이의 숫자로 구분되는데 이 네덩이로 구분된 IP주소 체계를 IPv4라고 한다. (Internet Protocol version 4)

nslookup naver.com

여기서 localhost, 127.0.0.1 은 현재 사용 중인 로컬 PC를 말한다.

0.0.0.0과 255.255.255.255는 Broadcast address로 로컬 네트워크에 접속된 모든 장치와 소통하는 주소다. 서버에서 접근 가능 IP 주소를 broadcast address로 지정하면 모든기기에서 서버에 접근할 수 있다.

Port는 IP주소127.0.0.1 뒤에 :3000 과 같은 숫자로 표현된다. 이는 IP주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미한다.

이미 사용 중인 포트는 중복해서 사용할 수 없으며, 다른 프로그램에서 3000번 포트를 사용하는 중이면, 다른 포트로 실행된다.

포트 번호는 0~65,535 까지 사용할 수 있다. 이 중에서 0 ~ 1024번은 주요 통신을 위한 규약에 따라서 이미 정해져있다.

- 22 : SSH
- 80 : HTTP
- 443 : HTTPS

이미 정해진 포트 번호라고 해도 필요에 따라서 자유롭게 사용가능하다.

도메인과 DNS

IP 주소를 대신하여 사용하는 것이다. 예를들면 위 nslookup 명령어를 사용한 화면에서 naver.com가 도메인이고 223.130.195.200가 IP 주소라고 보면 된다.

DNS는 Domain Name System의 줄임말로, 호스트의 도메인 이름을 IP주소로 변환하거나 반대의 경우를 수행하도록 개발된 DB 시스템이다.

만약 naver.com를 입력하면 이 요청은 DNS에서 IP주소를 찾아서 클라이언트와 서버가 통신할 수 있도록 해준다.

DNS Journey

도메인의 구조는 최상위 도메인과 여러 도메인으로 구성된다. 여기서 탑 레벨의 도메인은 .com .kr .net과 같은 가장 오른쪽에 위치한 도메인이다.

각 도메인으느 오른쪽에 위치한 도메인의 서브 도메인 역할을 한다.

반응형
Comments