일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JavaScript
- 개발공부
- algorithm
- 자바스크립트
- python algorithm
- 파이썬 알고리즘 인터뷰
- codestates
- 자바
- execution context
- 자료구조
- 알고리즘
- 운영체제
- node.js
- useState
- 비동기
- REACT
- java
- react 기초
- Python
- Zerobase
- 글또
- 프로그래머스
- OS
- Operating System
- context switching
- 파이썬
- 컴퓨터공학
- Computer Science
- typeScript
- 코드스테이츠
Archives
- Today
- Total
Back to the Basics
[Computer Science][Codestates] - HTTP/Network 기초 - 1 : Client -Server Architecture , HTTP, IP, Port 본문
Computer Science
[Computer Science][Codestates] - HTTP/Network 기초 - 1 : Client -Server Architecture , HTTP, IP, Port
9Jaeng 2021. 10. 24. 22:25728x90
1. 클라이언트 - 서버 아키텍처 (Client - Server architecture)
Client - Server
- Client : 클라이언트는 인터넷에 연결된 디바이스 또는 웹 접근할 수 있는 Software를 의미하며, 대표적으로 Browser가 있다. Browser는 API에 따라 Server에 Resource를 요청하고 HTML, CSS, Javascript 등으로 작성된 코드를 내부 엔진을 통해 해독하며 Server의 Response에 따른 화면을 표시한다.
- Server : API를 통해 보내온 Client의 Request를 처리한다.
Client - Server architecture 설계 방식
- 2Tier 아키텍처라고도 불리는 설계 방식
- 리소스가 존재하는 곳(server), 리소스를 사용은 앱(browser)을 분리시킨 것을 말한다.
- Client와 Server는 request와 response를 주고받는 관계이다
- 3-Tier 아키텍처 : 2-Tier 아키텍처에 데이터베이스가 추가된 형태
Client와 Server는 HTTP Protocol을 사용하여 통신한다.
- HTTP로 주고받는 메시지를 "HTTP Message"라고 부른다. 이 HTTP Protocol을 통해 Client는 request를 server에 보내고 resource를 받는다.
- 프로토콜 (Protocol)이란?
- 프로토콜은 통신규약이다. 프로토콜마다 지켜야 하는 규약이 존재한다.
- Network 통신 계층에 따라 사용하는 Protocol이 다르다. 주로 사용되는 protocol은 7 계층인 응용계층과 4 계층인 전송계층에서 사용되는 protocol이다. 아래의 표를 참고하여 알아두자.
주요 프로토콜 - 7 응용계층프로토콜 이름 설명 Port Number HTTP (Hypertext Transfer Protocol) 웹에서 HTML, JSON 등의 정보를 주고받는 프로토콜 80 HTTPS(Hypertext Transfer Protocol Secure) HTTP에서 보안이 강화된 프로토콜 443 FTP(File Transfer Protocol) 파일 전송 프로토콜 20 SMTP(Simple Mail Transfer Protocol) 메일 전송을 하기 위한 프로토콜 25 SSH(Shecure SHell) CLI 환경이 원격 컴퓨터에 접속하기 위한 프로토콜 22 RDP Windows 계열의 원격 컴퓨터에 접속하기 위한 프로토콜 3389 WebSocket 실시간 통신, Push 등을 지원하는 프로토콜 6436 프로토콜 이름 설명 TCP HTTP, FTP 통신의 근간이 되는 인터넷 프로토콜 UDP (양방향의 TCP와는 달리) 단방향으로 작동하는 훨씬 단순하고 빠르지만 , 신뢰성이 낮은 인터넷 프로토콜
- 프로토콜 (Protocol)이란?
API 란?
API란 Application Programing Interface의 약자로 아래와 같은 기능을 한다.
- Client가 리소스를 잘 활용할 수 있도록 Server에서 제공하는 Interface이다.
- API가 구축되어있어야 client가 이를 활용할 수 있다.
- 보통 인터넷에 data를 요청할 때에는 HTTP 프로토콜을 사용하며 주소(URL , URI)를 통해 접근할 수 있다. 적절한 API를 디자인하여 이를 통해 URI를 디자인하는 것이 중요하다.
HTTP API 디자일을 하는 Best Practice: 사용자 관리 API
요청 URL 디자인 사용하는 메서드 모든 사용자 조회 /users GET 새 사용자 추가 /users POST 1번 사용자 정보 갱신 /users/1 PUT 1번 사용자 정보 삭제 /users/1 DELETE 1번 사용자 정보 조회 /users/1 GET
*HTTP 요청에는 CRUD 각각의 행동과 일치하는 메서드가 존재하며 아래와 같다. 이 HTTP 메소드는 자원(resource)으로 하고자 하는 작업에 맞게 적절하게 사용되어야 한다.
기억해야 할 HTTP 메소드
요청 적절한 메소드 조회(Read) GET 추가 (Create) POST 갱신 (Update) PUT 또는 PATCH 삭제 (Delete) DELETE
2. 브라우저의 작동 원리
Network 통신을 위해 알아야 하는 기본적인 용어들을 공부하면서 브라우저가 작동되는 원리를 알아보자.
1) URL과 URI
- URL (Uniform Resource Locator) : Network 상에서 웹 페이 지, 이미지, 동영상 등의 파일이 위치한 정보를 나타낸다. URL은 scheme, hosts, url-path 까지를 URL이라고 한다. 초반에는 URL과 URI를 혼동하지 말자. query, fragmant는 URL에 포함되지 않는다.
부분 | 명칭 | 설명 |
---|---|---|
file:// , http:// , https:// | scheme | 통신 프로토콜 |
127.0.0.1 , www.google.com | hosts | 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP |
:80 , :443 , :3000 | port | 웹 서버에 접속하기 위한 통로 |
/search , /Users/username/Desktop | url-path | 웹 서버의 루트 디렉토리부터 웹 페이지, 이미지, 동영상 등의 파일 위치까지의 경로 |
URI는 URL의 상위 개념이다.
- URI (Uniform Resource Idenrifier) : 특정 Resource를 식별하는 통합 지원 식별자
URL의 기본 요소인 **schem, host , port, path**에 **quey**와 **fragment를** 포함한다.
2) IP와 PORT
- IP (Internet Protocol address , IP 주소) : Network에 연결된 특정 PC의 주소를 나타내는 체계
- IPv4 : Iterenet Protocol version 4를 의미하며 네 개의 숫자 덩이(?)로 구분된 주소체계이다.
- 각 덩이마다 0~255까지 나타낼 수 있다. 2^(32)인 43억 개의 IP주소를 표현할 수 있다.
- 기억해야 하는 IP주소 (이미 용도가 정해져 있는 주소가 있다)
- localhost , 127.0.0.1 : 현재 사용 중인 로컬 PC를 지지한다
- file://127.0.0.1/Users/username/Desktop/ (username에 사용자 이름 입력)을 하면 크롬 브라우저를 탐색기로 사용할 수 있다...!
- 0.0.0.0 , 255,255,255,255 : broadcast address로 로컬 네트워크에 접속된 모든 장치와 소통하는 주소. 서버에서 접근 가능 IP 주소를 broadcast address로 지정하면 모든 기기에서 거버에 접근할 수 있다
- IPv6 : IPv4로 할당할 수 있는 PC가 한계를 넘어서 생긴 표기법. 2^(128) 개의 주소를 표현할 수 있다.
- IPv4 : Iterenet Protocol version 4를 의미하며 네 개의 숫자 덩이(?)로 구분된 주소체계이다.
- PORT
- PORT는 IP주소가 가리키는 PC에 접속할 수 있는 통로 (채널)을 의미한다.
- port 번호는 0~65,535까지 사용할 수 있다.
- port 번호는 중복해서 사용할 수 없으며 다른 프로그램에서 사용 중이라면, 다른 포트 번호로 실행이 된다.
- 기억해야 할 port 번호 (이미 정해진 port번호라도 필요에 따라 자유롭게 사용이 가능하다. )
- 22 : SSH
- 80 : HTTP
- 443 : HTTPS
- FTP (file transfer protocol) 같은 경우 생략하면 21번이 기본값입니다.
- 기타 다양한 포트번호
3) 도메인과 DNS
- Domain name
- DNS (Domain Name System)
- 모든 IP주소가 Domain Name을 갖는 것은 아니다. 일정 기간 동안 대여하여 사용한다..
- Domain name으로 해당 사이트로 이동하기 위해서는 Domain name과 매칭 된 IP주소를 확인하는 작업이 필요하다.
- DNS는 host의 domain 이름을 IP주소로 변환하거나 반대의 경우를 수행할 수 있도록 개발된 Database system이다.
- 브라우저의 검색창에 Domain name을 입력한다면 , 이 요청은 DNS에서 IP주소를 찾고 해당 웹 서버로 요청을 전달하여 Client와 Server가 통신하게 해 준다.
- DNS (Domain Name System)
- Domain name은 IP주소를 대신하여 사용하는 주소이다.
728x90
'Computer Science' 카테고리의 다른 글
[Computer Science][Codestates] - HTTP/Network 기초 - 3 : HTTP Messages (0) | 2021.10.25 |
---|---|
[Computer Science][Codestates] - HTTP/Network 기초 - 2 : Chrome Error , Chrome Network Tap 사용법 (0) | 2021.10.24 |
[Computer Science][제로베이스 ]-운영체제 - System call & kernel (0) | 2021.10.24 |
[Computer Science][CS50] 컴퓨터와 컴퓨팅 - TOPIC2 (0) | 2021.08.30 |
[Computer Science][CS50] 컴퓨터와 컴퓨팅 - TOPIC1 (0) | 2021.08.30 |
Comments