Codestates SEB FE 42기/정리노트

S2 unit7 | [HTTP/네트워크] 클라이언트 서버 아키텍처와 프로토콜

2realzoo 2022. 12. 2. 14:49

📌 클라이언트 서버 아키텍처 (2-Tiar 아키텍처)

: 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것

 

클라이언트 : 리소스 사용하는 앱

서버 : 리소스 제공(serve)하는 곳

데이터베이스 : 리소스 저장하는 공간 (2-Tiar 아키텍처 + 데이터베이스  ===  3-Tiar 아키텍처)

 

📌 프로토콜

: 서버와 클라이언트 사이의 통신 규약

OSI 7 Layers에 속한 다양한 프로토콜들이 있음

 

 

✔ API (Aplication Programming Interface)

: 서버가 제공하는 인터페이스

 

Interface : 의사소통이 가능하도록 만들어진 접점

 

HTTP API 디자인의 Best Practice

HTTP 요청에는 메서드 개념 존재

요청 URL 디자인 사용하는 메소드
모든 사용자 조회 /users GET
새 사용자 추가 /users POST
1번 사용자 정보 갱신 /users/1 PUT
1번 사용자 정보 삭제 /users/1 DELETE
1번 사용자 정보 조회 /users/1 GET

📌 URL & URI

✔ URL (Uniform Resourde Locater)

: 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냄

명칭 설명 예시
scheme 통신 방식(프로토콜) file:// , http://, https://
hosts  웹 서버의 이름, 도메인, IP를 사용하여 나타낸 주소 127.0.0.1, www.google.com
url-path 웹 서버에서 지정한 루트 디렉토리부터 시작한 소스의 경로, 파일명 /search, /Users/username/Desktop

 

✔ URI (Uniform Recourse Identifier)

: URL을 포함하는 상위개념

명칭 설명 예시
query 웹 서버에 전달하는 추가 질문 q=JavaScript
fragment 북마크 기능 수행, URL에 fragment(#)와 특정 HTML 요소의 id 전달 시해당 요소가 있는 곳으로 스크롤 이동   
port 웹 서버에 접속하기 위한 통로 :80, :443, :3000

📌 IP & Port

✔ IP (Internet Protocol)

: 인터넷 상의 주소체계

 

IPv4 (Internet Protocol version 4)

 1. 네 덩이의 숫자로 구분

 2. 각 덩어리에 0 ~ 255까지 나타냄 (2^(32) : 약 43억 개의 IP주소)

 

IPv6

: 개인 PC의 증가로 IPv4로 할당할 수 있는 PC가 한계를 넘어서서 만들어짐

표기법을 달리 책정하여 2^(128)개의 주소 표현 가능

 

localhost, 127.0.0.1 : 현재 사용 중인 로컬 PC

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

 

✔ PORT

: 웹 서버에 접속하기 위한 통로(채널)

 

포트 번호 : 0 ~ 65535 까지 사용 가능, 0 ~ 1024번은 주요 통신을 위한 규약에 따라 이미 정해져 있음

 

22 : SSH

80 : HTTP

443 :HTTPS

 

HTTP, HTTPS는 URI에서 생략가능


📌 Domain name

: 웹 브라우저를 통해 특정 사이트에 진입할 때 IP 주소를 대신하여 사용하는 주소

IP를 간결하게 표현 (예: 도로명주소 = IP, 상호명 = 도메인 네임)

 

nslookup : 터미널에서 도메인 이름으로 IP주소 확인

 

✔ DNS (Domain Name System)

: IP주소와 도메인 이름 변환, 반대의 경우도 수행