1. 현재의 무드: 낯선 용어 천지이지만...! 저번 주에 붙캠에서 배운 파트는 다시 복습하고 80% 이상 이해하고 넘어가자!
2. 오늘 학습한 내용 중 키워드: 웹 애플리케이션 아키텍쳐 / API / URL, URI / IP, PORT / 도메인, DNS / HTTP
3. 오늘 학습한 내용 요약
- 웹 애플리케이션 아키텍처
- 클라이언트 - 서버 아키텍처 (2-tier architecture)
- 서버 (server) - 제공(serve) 하는 주체 (리소스가 존재하는 곳) <-> 클라이언트 (client) - 리소스를 사용하는 앱
- 리소스가 존재하는 곳 (서버) 과 리소스를 사용하는 앱 (클라이언트) 를 분리시키는 것이 유리함. 왜냐하면, 분리되지 않은 경우 데이터를 업데이트 할 때마다 앱을 계속 업데이트해야하는 비효율을 초래함!
- 서버와 클라이언트는 요청과 응답을 주고받는 관계이며, 요청이 선행되고 그 후에 응답을 제공함.
- +a) 3-tier architecture: 기존 2티어에 데이터베이스가 추가된 형태. 서버는 리소스를 전달해주는 역할이며, 리소스를 데이터베이스라는 공간에 저장한다.
- 보통 클라이언트가 프론트엔드, 서버와 데이터베이스는 백엔드로 분리된다.
- 클라이언트 - 서버 통신과 API
- 포로토콜: 통신 규약 -> 정보 요청과 응답을 위해서 지켜야하는 약속
- ex) HTTP: 웹 애플리케이션 아키텍처에서 클라이언트와 서버가 HTTP 메세지를 주고받음.
- OSI 7 layers: 프로토콜을 7개의 레이어로 나누어 분리한 개념. 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
- 포로토콜: 통신 규약 -> 정보 요청과 응답을 위해서 지켜야하는 약속
- 클라이언트 - 서버 아키텍처 (2-tier architecture)
- API (Application Programming Interface)
- 서버가 클라이언트에게 리소스를 잘 활용할 수 있도록 제공하는 인터페이스
- HTTP API 디자인의 best practice 가 존재함.
- CRUD 각각에 맞는 HTTP 메서드: GET, POST, PUT/PATCH, DELETE
- 브라우저의 작동 원리
- URL / URI
- URL (Uniform Resource Locator): 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보
- scheme, hosts, url-path
- URI (Uniform Resource Identifier)
- scheme, hosts, url-path + query, fragment
- URL (Uniform Resource Locator): 네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보
- IP / PORT
- IP (Internet Protocol): 인터넷상에서 사용하는 주소체계
- IPv4 / IPv6
- localhost, 127.0.0.1 -> 현재 사용중인 로컬PC
- 0.0.0.0, 255.255.255.255 -> broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소
- IPv4 / IPv6
- PORT: http://localhost:3000 -> :3000 이 숫자 부분! IP 주소가 가리키는 PC에 접속할 수 있는 통로(채널) 을 의미함.
- 0~65535까지 사용할 수 있음. 그 중 0~1024번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있음!
- 22: SSH / 80: HTTP / 443: HTTPS
- 0~65535까지 사용할 수 있음. 그 중 0~1024번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있음!
- IP (Internet Protocol): 인터넷상에서 사용하는 주소체계
- 도메인 / DNS
- 도메인: IP 주소를 대신하여 사용하는 주소! nslookup 명렁어로 터미널에서 조회 가능
- DNS(Domain Name System): 일정 기간 대여하여 사용하는 도메인 이름과 매칭된 IP 주소를 확인할 수 있는 데이터베이스 시스템
- URL / URI
- HTTP
- HyperText Transfer Protocol. HTML과 같은 문서를 전송하기 위한 프로토콜. 웹 브라우저와 웹 서버의 소통을 위해 디자인되었음. / 무상태성 (stateless)
- HTTP Messages: 클라이언트와 서버 사이에서 데이터가 교환되는 방식
- start line / status line : 요청이나 응답의 상태
- HTTP headers: 요청을 지정하거나, 메세지에 포함된 본문을 설명하는 헤더의 집합
- empty line
- body: 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서 포함
- HTTP Requests (요청)
- Start line: HTTP 메서드를 나타냄 / 절대 경로를 다양한 형식으로 표현 / HTTP 버전
- Headers: "헤더 이름: 값" 의 기본 구조로 표현.
- general headers
- request headers
- representation headers
- Body: POST, PUT 과 같은 일부 요청에서 데이터를 업데이트하기 위해 사용
- single-resource bodies
- multiple-resource bodies
- HTTP Responses (응답)
- Status line:
- 현재 프로토콜의 버전 / 상태 코드 - 요청의 결과 / 상태 텍스트
- ex) HTTP/1.1 404 Not Found
- 현재 프로토콜의 버전 / 상태 코드 - 요청의 결과 / 상태 텍스트
- Headers: 요청 헤더와 동일한 구조!
- general headers
- response headers
- representation headers
- Body:
- single-resource bodies
- multiple-resource bodies
- Status line:
'Network' 카테고리의 다른 글
프론트엔드가 백엔드와 소통하는 법 (feat. Fetch API / Axios 비교) (0) | 2023.06.13 |
---|---|
네트워크 02 AJAX (0) | 2022.12.06 |