클라이언트-서버 아키텍처
프로토콜 (Protocol)
- 컴퓨터나 기기들이 서로 통신하기 위해 지켜야할 규칙과 규약의 집합
- 서로 다른 시스템 간의 데이터 통신을 위한 표준화된 방식 제공
→ 통신 중 발생할 수 있는 문제를 줄일 수 있음
- 서로 다른 시스템 간에 상호작용이 필요한 모든 분야에서 사용됨
예시 )
** IP (Internet Protocol)
- 인터넷에서 데이터를 주고받을 때 사용되는 프로토콜
- 데이터를 나누고 주소를 부여하는 등의 규칙을 정의함
** SMTP (Simple Mail Transfer Protocol)
- 메일을 보내고 받기위한 표준화된 방식을 제공
HTTP (Hyper-Text Transfer Protocol)
- 인터넷에서 웹 페이지를 전송하는데 사용되는 프로토콜 중 하나
- 클라이언트-서버 간 통신에 사용됨 ( 브라우저-웹서버 )
- 클라이언트가 요청(Request)을 보내면 서버가 응답(Response)을 보내는 방식으로 동작
- 웹 페이지를 전송하는데 초점을 맞추고 있어 HTML, 이미지, 스타일시트 등을 전송하는 데 사용
- 데이터를 암호화하지 않고 전송
HTTPS (Hyper-Text Transfer Protocol Secure)
- HTTP의 보안 버전
- SSL 또는 TLS 프로토콜을 사용하여 데이터를 암호화해서 전송함
** SSL (Secure Sockets Layer) : 웹 서버와 웹 브라우저 사이의 보안 통신을 위한 암호화 프로토콜
** TLS (Transport Layer Security) : SSL(Secure Sockets Layer) 프로토콜의 후속 버전
- 서버 인증서(server certificate)를 사용하여 웹 사이트의 신원을 확인
→ 클라이언트는 통신 대상이 신뢰할 수 있는 서버인지 확인 가능
- 보안이 중요한 정보를 전송하는 경우에 사용하는게 좋음
** 로그인/ 결제 등의 개인정보를 입력하는 웹 페이지
주요 프로토콜
OSI 7 계층
- 데이터 통신을 위한 일반적인 프로토콜을 개발하는데 사용되는 기본 참조 모델
7. 응용 계층 (Application Layer) |
- 최종 사용자가 사용하는 프로그램과 직접 상호작용 - HTTP, FTP, SMTP, DNS 등과 같은 프로토콜이 이 계층에서 작동함 |
6. 표현 계층 (Presentation Layer) |
- 데이터 표현을 관리 - 데이터를 압축, 암호화, 변환, 형식 지정 등의 작업을 수행 |
5. 세션 계층 (Session Layer) |
- 세션을 설정, 유지 및 해제함 - 원격 프로시저 호출(RPC), 세션 관리 등과 같은 기능을 제공함 |
4. 전송 계층 (Transport Layer) |
- TCP와 UDP 같은 프로토콜을 사용하여 종단 간의 통신을 관리 |
3. 네트워크 계층 (Network Layer) |
- 라우터에서 사용되는 IP(Internet Protocol) 주소를 기반으로 데이터를 전송 - 라우팅, 패킷 전송, 흐름 제어 등과 같은 기능을 제공 |
2. 데이터 링크 계층 (Data Link Layer) |
- 물리 계층으로부터 전송된 데이터 프레임을 받아오고, 오류를 검사하고, 필요한 경우 오류를 수정함 - MAC(Media Access Control) 주소를 사용하여 호스트를 식별함 |
1. 물리 계층 (Physical Layer) |
- 데이터를 전송하는 데 사용되는 물리적 매체(유선 또는 무선 매체)에 대한 인터페이스를 제공 - 비트를 전기적 신호로 변환하거나 라디오 파장으로 변환하여 전송 |
** TCP (Transmission Control Protocol)
- 신뢰성이 높은 연결지향 프로토콜
- 데이터 전송 과정에서 데이터가 손실/손상되는 경우 자동으로 재전송 (데이터 무결성 보장)
- 데이터 전송 전에 3-way handshake 과정을 수행하여 연결을 설정 후 연결을 끊는 4-way handshake 과정을 수행
- 웹 브라우저와 웹 서버, 이메일 클라이언트와 서버 등의 통신에 주로 사용
** UDP (User Datagram Protocol)
- 신뢰성이 낮은 비연결형 프로토콜
- 데이터 전송 과정에서 데이터가 손실되더라도 자동으로 재전송하지 않음
- 데이터 전송의 실시간성을 보장
- 스트리밍 서비스, 온라인 게임, DNS(Domain Name System) 등의 통신에 주로 사용
브라우저의 작동 원리
URL, URI의 구성
http://www.google.com:80/search?q=JavaScript
scheme | http:// | 통신 프로토콜 |
hosts | www.google.com | 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP |
port | :80 | 웹 페이지에 접속하기 위한 통로 |
url-path | /search | 웹 서버에서 지정한 루트 디렉터리부터 웹 페이지, 이미지, 동영상 등의 파일이 위치한 경로 |
query | ?q=JavaScript | 웹 서버에 보내는 추가적인 질문 |
URI(Uniform Resource Identifier)
- 인터넷에서 특정 리소스를 찾기 위해 사용되는 주소
- 프로토콜 (HTTP, FTP 등), 호스트 이름, 파일 경로 등의 요소를 포함해야함
- scheme, Resource, url-path, query, bookmark를 포함함
URL (Uniform Resource Locator)
- 인터넷 상의 고유한 자원을 식별하는 문자열 시퀀스
- 인터넷에서 특정한 리소스의 위치를 나타내는 URI의 하위 집합
- 네트워크상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타냄
- 웹에서 사용되는 URL 뿐만 아니라 전자우편 주소, 파일 경로 등 여러 가지 유형이 있음
- scheme, Resource, url-path로 구분 가능
⇒ URI는 URL을 포함하며 더 일반적인 개념
IP address (Internet Protocol address)
- 네트워크에 연결된 특정 PC의 주소를 나타내는 체계
- 인터넷에 연결되는 모든 PC는 IP주소 체계를 따라 네덩이의 숫자로 구분됨 (IPv4)
- 인터넷의 빠른 성장으로 인해 IP 주소 부족 문제가 발생 → IPv6 등장
** IPv4 (IP version 4)
- 현재까지 가장 널리 사용되는 IP 버전
- 32비트 주소 체계를 사용해 약 43억개의 주소를 지원함
** IPv6 (IP version 6)
- IP의 다음 세대 버전
- IPv4의 고갈 문제를 해결하고 인터넷 기능을 향상시키기 위해 개발됨
- 128비트의 주소 체계를 사용해 2^(128)개의 주소를 지원함
- 보안 기능과 서비스 품질(QoS) 지원 기능 등을 개선하여 안전하고 효율적인 인터넷 연결 제공
Port
- IP 주소에 진입할 수 있는 정해진 통로 - 0 ~ 65,535까지 사용 가능
** 0 ~ 1024까지는 주요 통신을 위한 규약에따라 이미 정해져 있음
** 22 : SSH / 80 : HTTP / 443 : HTTPS
도메인 (Domain)
- 웹 브라우저를 통해 특정 사이트에 진입할 때, IP 주소 대신 사용하는 주소
DNS (Domain Name System)
- 인터넷에서 사용되는 계층적이고 분산된 명명 시스템
- 사용자가 도메인 이름을 입력 → 해당 도메인 이름에 대한 IP 주소를 찾아 사용자가 요청한 서비스에 연결
- 도메인 이름을 관리하고, 도메인 이름과 IP 주소를 연결하는 DNS 레코드를 유지함
AJAX (Asynchronous JavaScript and XML)
- 비동기적으로 서버와 웹 페이지를 상호작용하는 웹 개발 기술
- JS, XML, CSS 등을 사용하여 웹페이지의 동적인 내용을 업데이트하고, 사용자와 서버 간의 데이터 교환을 처리할 수 있음
- 웹 페이지에 필요한 부분에 필요한 데이터만 비동기적으로 받아와 화면에 그려낼 수 있음
출처 :
코드스테이츠 BEB
'기타 > Computer Science' 카테고리의 다른 글
[네트워크] 네트워크 기초 정리2 (0) | 2023.04.04 |
---|---|
[네트워크] HTTP (0) | 2023.04.02 |