클라이언트-서버 통신
프로토콜
HTTP(80 포트) :
- HTTP(Hypertext Transfer Protocol)는 인터넷에서 데이터를 주고받을 수 있는 프로토콜
- 보내는 데이터: HTML 문서, 이미지, 동영상, 오디오, 텍스트 문서
- 웹의 어플리케이션 계층 프로토콜(TCP/IP 위에서 작동)
HTTPS(443 포트) :
HTTP 프로토콜의 보안 버전
- 중요한 데이터를 안전하게 전송
- 443 포트, https:// 사용
- 웹서버와 웹브라우저간의 보안, 공개키/개인키 대칭키 기반으로 사용
FTP(21 포트):
- 서버와 클라이언트 사이에서 TCP/IP를 통해 파일을 송수신하기 위한 프로토콜
- 파일 전송 프로토콜(File Transfer Protocol)
- 보안 부분에서 취약
SFTP(22 포트):
- SFTP(Secure File transfer protocol)
- 파일을 전송할 때 암호화 시켜서 전송하는 프로토콜
- SFTP를 지원하는 서버와 클라이언트 필요
MYSQL:
- MYSQL의 기본 포트 번호: 3306
SSH(22 포트):
- SSH(Secure Shell) : 보안 셸
- 기존 텔넷은 암호화 X → 암호화 기능을 추가한 프로토콜
- 셸로 원격 접속
[네트워크 계층]
OSI 7 계층
네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
- 물리 계층(Physical Layer): 하드웨어 전송 기술
- 데이터 링크 계층(Data Link Layer): 신뢰성 있는 전송을 보장하기 위한 계층
- 네트워크 계층(Network Layer): IP주소를 제공하는 계층
- 전송 계층(Transport Layer): 양 끝단(End to End)의 사용자가 데이터를 주고 받을 수 있음(TCP, UDP 프로토콜)
- 세션 계층(Session Layer): 데이터를 만들어내는 계층
- 표현 계층(Presentation Layer): 코드 간의 번역을 담당
- 응용 계층(Application Layer): HTTP, FTP 등의 프로토콜, 응용 서비스를 수행
TCP/IP
- TCP
- 전송 제어 프로토콜(Transmission Control Protocol)
- 서버와 클라이언트간의 데이터를 신뢰성있게 전달
- 데이터 패킷에 일련의 번호를 부여, 데이터 손실 교정, 순서 재조합하여 클라이언트에게 전달
- IP
- 인터넷 프로토콜(Internet Protocol)
- 각 컴퓨터의 주소
- IPv4, IPv6
[패킷]
- Header
- 헤더는 데이터 이외에 HTTP 선두에 삽입되는 부분
- 응답/요청 헤더
- Body
- 바디는 실제 데이터 부분
- 페이로드(Payload)라고도 불림
- IPv4
- IPv4는 32비트 방식
- 4개로 나눠진 최대 12자리의 번호(예 : 192.168.111.224)
- IPv6
- 128비트 주소체제
- 인터넷의 각 컴퓨터가 한 개 이상의 고유한 IP 주소를 가짐 → 고갈 가능성
- Domain
- naver.com -> 125.209.222.141
- IP에 이름을 부여 한 것
[Port]
- 서버에서 포트란?
- 포트: 서버로 들어가는 관문
[프로토콜별 포트 번호 정리]
- 인바운드 / 아웃바운드
- 아웃바운드 규칙 : 서버에서 네트워크 데이터가 나갈 수 있도록 규칙을 정의
- 인바운드 : 서버로 네트워크 데이터가 들어올 수 있도록 규칙을 정의
- 데몬(Daemon)
- 포트 웨이터 역할 ( Apache의 데몬 프로세스가 요청을 확인)
- 데몬 : HTTPd, mysqld
- 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램
- 공유기
- WAN: 멀리 떨어진 지역을 서로 연결하는 네트워크, LAN과 LAN 사이 광범위하게 네트워크 구성
- LAN : 한정된 공간에서 네트워크를 구성한 것
- 외부 IP (공인 IP)
- 인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소
- 내부 IP (사설 IP)
- 내부 네트워크 ( 공유기 내부 네트워크 ) 상에서만 사용되는 주소
- 외부 포트
- 외부 IP를 통해 내부 웹서버로 접속할때 외부 IP 뒤의 붙는 포트 번호
- 내부 포트
- 외부에서 접속한 기기를 내부의 어떤 포트 번호로 연결해주는 포트 번호
- 게이트웨어
- 현재 사용자가 위치한 네트워크에서 다른 네트워크로 가기 위해 거쳐야 하는 거점
- 방화벽
- WAN(외부 사용자)이 LAN(내부 네트워크)에 접근하지 못하도록 하는 내부 네트워크
'💻 Backend' 카테고리의 다른 글
서버 4주차 정리 - DB에 관하여 - (1) (0) | 2021.10.17 |
---|---|
서버 3주차 - OS와 AWS에 대하여 (0) | 2021.10.10 |
서버 스터디 2주차 [키워드 정리] - (2) (0) | 2021.10.10 |
서버 스터디 1주차 [키워드 정리]- (2) (0) | 2021.09.29 |
서버 스터디 1주차 [키워드 정리] - (1) (0) | 2021.09.29 |