리소스에 접근하려는 앱은 손님과 같다. 손님이 어떤 물품을 받는다고 했을 때 리소스를 갖고 있는 점원에게 요청해야 한다. 이 요청에 따라 리소스를 담아 응답한다.
서버는 일반적으로 리소스를 전달만 해주고 이 리소스를 저장하는 공간을 따로 마련하는데 이를 데이터베이스라고 한다.
클라이언트와 서버 간의 통신을 알기 위해서는, 프로토콜이라는 것을 알아야 하는데
프로토콜은 통신 규약, 즉 약속이다.
웹 애플리케이션 아키텍처에서는 클라이언트와 서버가 서로 HTTP라는 프로토콜을 이용해서 서로 대화를 나눈다. HTTP를 이용해 주고받는 메시지는 "HTTP 메시지"라고 부른다.
우리(클라이언트)는 서버가 어떻게 구성되어 있는지 알 방법이 없다. 그런데 어떻게 리소스를 파악할 수 있을까?
서버는 클라이언트한테 리소스 활용을 할 수 있도록 인터페이스를 제공해줘야 한다.(실생활을 예로 들면 메뉴판) 이를 API라고 한다.
URL - 리소스의 위치를 나타내는 주소
URI - 리소스를 식별하기 위한 문자열 구성
이 둘을 구별하는 방법은
[스키마][자격정보(credential)][서버주소][서버포트][계층적 파일 패스][쿼리 문자열][프래그먼트]
localhost
, 127.0.0.1
: 현재 사용 중인 로컬PC0.0.0.0
, 255.255.255.255
: broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소포트번호는 0~65535까지 사용 가능하다. 대표적인 포트 번호는 다음과 같다.
입력한 도메인을 실제 네트워크 상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 과정이 필요함. 이러한 과정 시스템을 DNS(Domain Name System)이라 한다.
클라이언트가 서버에게 보내는 메시지로 3가지 요소가 있다.
CONNECT
와 함께 사용OPTIONS
와 함께 * 하나로 서버 전체 표현응답의 첫 줄을 status line이라고 하며 다음과 같은 정보를 포함한다.
Asynchronous JavaScript And XMLHttpRequest의 약자로 JS,DOM,Fetch 등을 사용하는 웹 개발 기법이다.
참고자료
URI와 URL
URI와 URL의 차이점
그림으로 배우는 HTTP 네트워크 Basic
dns란-도메인-네임-시스템-개념부터-작동-방식까지