클라이언트-서버 아키텍처
★ OSI 7계층
● API : 클라이언틍와 서버를 통신하게 도와주는 통신 규약(ex. 메뉴판)
★ URL과 URI
URL(Uniform Resource Locator) : 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냄
부분명칭설명
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, Port
Port : IP로 접속하기 위한 통로, 0~ 65,535 ( 0 ~ 1024번 까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해짐)
- 잘 알려진 포트
22 : SSH
80 : HTTP
443 : HTTPS
★ 도메인과 DNS
Domain name
- 웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소
localhost = 127.0.0.1
DNS ( Domain Name System ) : 도메인 이름을 IP 주소로 변환 or 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템
★ DNS 과정
● DNS 리커시 - 리커서는 도서관의 어딘가에서 특정한 책을 찾아달라고 요청받는 사서로 생각할 수 있음
애플리케이션을 통해 클라이언트 컴퓨터로부터 쿼리를 받도록 고안된 서버
클라이언트의 DNS 쿼리를 충족시키기 위해 추가 요청을 수행
● 루트 이름 서버 - 사람이 읽을 수 있는 호스트 이름을 IP 주소로 변환(확인)하는 첫 번째 단계
책장 위치를 가리키는 색인으로 생각할 수 있으며, 일반적으로 다른 더욱 특정한 위치에 대한 참조
● TLD 이름 서버 - TLD(최상위 도메인) 서버는 도서관의 특정 책장
특정 IP 주소 검색의 다음 단계이며 호스트 이름의 마지막 부분을 호스팅
● 권한 있는 이름 서버 - 최종 이름 서버로서, 책장에 있는 사전처럼 특정 이름을 해당 정의로 변환
권한있는 이름 서버가 요청한 레코드에 대한 액세스 권한이 있다면, 요청한 호스트 이름의 IP 주소 를 초기 요청을 한 DNS 리커서(사서)에게 돌려 보냄
★ DNS 쿼리
1. 재귀 쿼리 : 확인자가 레코드를 찾을 수 없는 경우, DNS 클라이언트는 DNS 서버(일반적으로 DNS 재귀 확인자)가, 요청한 자원 레코드 또는 오류 메시지를 사용하여 클라이언트에 응답
2. 반복 쿼리 : DNS 클라이언트는 DNS 서버가 가능한 최상의 응답을 반환, NS 서버가 쿼리 이름과 일치하는 이름을 갖고 있지 않은 경우, 하위 수준의 도메인 네임스페이스에 대해 권한 있는 DNS 서버에 대한 참조를 반환
> DNS 클라이언트가 참조 주소를 쿼리, 오류 또는 제한 시간 초과가 발생할 때까지 추가 DNS 서버가 쿼리 체인을 중단한 상태로 계속
3. 비재귀 쿼리 : DNS 확인자 클라이언트의 쿼리를 받은 DNS 서버가 해당 레코드에 대한 권한이 있거나 캐시 내부에 해당 레코드를 갖고 있어, DNS 서버가 액세스 권한을 갖고 있는 레코드를 쿼리할 때 발생, DNS 레코드를 캐시
★ 캐싱
> 데이터를 임시 저장하여, 데이터 요청에 대해 성능과 신뢰성을 높이는 것
DNS 데이터는 다양한 위치에 캐시될 수 있으며, 각 위치는 TTL(Time-To-Live)에 의해 정의된 설정 시간 동안 DNS 레코드를 저장
※ TTL : 패킷이 라우터에 의해 폐기될 때까지 네트워크 내부에 존재하도록 설정된 시간 또는 "홉"의 양
- traceroute 명령을 사용하면 점점 더 높은 순차적 TTL을 가진 패킷 스트림이 인터넷을 통해 대상으로 전송
'DevOps BootCamp > 웹 서비스' 카테고리의 다른 글
HTTP 기초 두 번째 발표 (0) | 2023.03.16 |
---|---|
DNS 서버 과정 (0) | 2023.03.15 |
웹 서비스 첫 번째 발표 (0) | 2023.03.15 |