서버 아키텍처
웹 브라우저를 통해 웹 컨텐츠를 볼 때 다음과 같이 일이 일어난다.
웹 브라우저(클라이언트) 가 웹 서버에 컨텐츠를 요청하고,
요청을 받은 서버는 해당 컨텐츠를 클라이언트로 전송해준다.
- 전 세계의 모든 웹 브라우저, 서버, 애플리케이션은 HTTP 라는 프로토콜을 통해서 서로 대화한다.
인터넷 세상의 공용어인 셈이다. - 클라이언트 - 서버로 이루어진 통신 구조를 클라이언트 서버 아키텍쳐, 2티어 아키텍쳐라고 부르며,
여기에 데이터를 저장할 수 있는 DB를 포함해 3티어 아키텍쳐라고 하기도 한다. - 서버 - 서버는 무엇을 하느냐에 따라 종류가 달라진다. 파일 서버는 파일을 제공하는 앱 등 데이터베이스도
데이터 제공자로서 일하므로 일종의 서버라고 볼 수 있다.
서버통신과 API
클라이언트와 서버 간의 통신을 알아보려면, 먼저 프로토콜이라는 개념을 이해해야 한다.
- 프로토콜(Protocol)은 통신 규약, 즉 약속이다. 손님이 주문을 받는 사람에게 대뜸 찾아가 외계어로 주문을 할 수 없듯,
주문을 하기 위해서는 꼭 지켜야 하는 약속이 존재하는 경우를 프로토콜이라고 한다. - API(Application Programming Interface)
서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 인터페이스(interface)를 제공해주는 역할이 API이다.
API는 앱이 요청할 수 있고 프로그래밍 가능한 인터페이스다.
URL 과 URI
- URI 는 Uniform Resource Identifier, URL 은 Uniform Resource Location 을 의미한다.
각 이름처럼 URI 는 리소를 식별하는 역할을 하고, URL은 리소스의 구체적인 위치를 표현한다. - URI 가 URL 을 포함하는 상위 개념이다.
- URL 은 이런 구조로 리소스의 위치를 표현한다. (scheme, hosts, url-path)
- URI 는 추가적으로 query 와 fragment 가 덧붙으면 URI 가 된다.
부분 명칭 설명
file://, http://, https:// | scheme | 통신 프로토콜 |
127.0.0.1, www.google.com | hosts | 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP |
:80, :443, :3000 | port | 웹 서버에 접속하기 위한 통로 |
/search, /Users/username/Desktop | url-path | 웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등의 파일이 위치까지의 경로 |
q=JavaScript | query | 웹 서버에 전달하는 추가 질문 |
IP 주소와 도메인, DNS
- 네트워크에 연결된 모든 컴퓨너는 127.0.0.1 이렇게 생긴 IP 주소를 갖는다.(현재 사용 중인 로컬 PC를 지칭한다.)
IP 주소가 위도와 경도를 나타내는 주소라면, 도메인이름은 그에 상응하는 건물 이름이나 상호명이라고 생각하면 된다. - 서버에 요청을 보낼 때 이런 도메인 이름을 실제 서버 주소인 IP 주소로 변경해야하는데, 이런 역할을 하는 특별한 서버가
바로 DNS 이다. Domain Name System 으로 인터넷 세상의 전화번호부 같은 역할을 하고, 서버에 요청을 보내기 전
클라이언트는 이 DNS 로 도메인 이름을 IP 주소로 변환한 뒤 이것을 토대로 요청을 보내게 된다.
HTTP Messages
HTTP Messages는 클라이언트와 서버 사이에서 데이터가 교환되는 방식입니다.
HTTP Messages에는 다음과 같은 두 가지 유형이 있습니다.
- 요청(Requests)
- 응답(Responses)
HTTP Messages는 몇 줄의 텍스트 정보로 구성됩니다. 그러나 개발자는 이런 메시지를 직접 작성할 필요가 거의 없습니다.
구성 파일, API, 기타 인터페이스에서 HTTP Messages를 자동으로 완성합니다.
HTTP Request 요청 / HTTP Response 응답
HTTP 메세지는 요청과 응답이 유사하게 생겼으며, 크게 다음과 같이 구분한다.
- start line : start line에는 요청이나 응답의 상태를 나타냅니다. 항상 첫 번째 줄에 위치합니다.
응답에서는 status line이라고 부릅니다. - HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합입니다.
- empty line : 헤더와 본문을 구분하는 빈 줄이 있습니다.
- body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함합니다. 요청과 응답의 유형에 따라 선택적으로 사용합니다.
HTTP 메서드
HTTP 에서는 HTTP 메서드라고 불리는 여러 종류의 요청 명령을 지원한다. 메서드를 통해서 서버에게 어떤 동작을 취하라고
요청을 할 수 있다. 주요 HTTP 메서드로는 5가지가 있다.(아래 5가지는 CRUD 에 해당한다.)
- GET : 조회
- PUT / PATCH: 업데이트
- DELETE: 삭제
- POST: 추가
'WEB' 카테고리의 다른 글
웹 표준 & 접근성 알아보기! (0) | 2023.04.27 |
---|---|
[UI/UX] 사용자 인터페이스(UI) / 사용자 경험(UX) 이해하기! (0) | 2023.04.13 |
[NetWork/HTTP] - 페이로드(Payload)란? (0) | 2023.03.30 |
REST API는 무엇인가? (1) | 2023.03.29 |