본문 바로가기

CS

네트워크

포트(PORT) 번호 - 네트워크에서 컴퓨터나 기기의 특정 애플리케이션이나 서비스에 연결할 수 있도록 식별하는 번호

 

ex)IP 주소는 아파트 , 포트번호는 호수

 

포트 번호

  • 포트 번호는 IP 주소 뒤에 콜론(:)으로 구분하여 나타냄
    • ex)127.0.0.1:3000
    • 위 경우는 포트 번호가 3000번 임을 나타냄
  • 사용 중인 포트는 중복해서 사용할 수 없음
    • 중복해서 사용하려는 경우 'port already in use 3000'과 같은 에러를 만나게 됨
    • 해당 에러를 해결하려면 다른 포트를 이용하거나, 필요 없는 포트를 종료해야 함

 

포트 번호


DNS(Domain Name System) - 도메인 이름과 IP 주소 간의 변환을 처리하는 시스템, 인터넷 서비스 제공자(ISP)가 제공하는 DNS 서버를 통해 실행

 

최상위 도메인(Top-level domain, TLD) : 도메인 이름의 가장 오른쪽 부분으로 국가 코드나 일반 TLD 등의 형태로 구성되며, 전 세계적으로 공유 

국가코드 ex).kr,  .com,  .us


TCP/UDP

 

프로토콜(Protocol) - 네트워크에서 서로의 컴퓨터가 원활한 인터넷 통신을 하기 위한 규칙

ex) IP : 인터넷에서 데이터를 주고 받는 규칙

 

TCP(Transmission Control Protocol) - 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜, 패킷의 손실을 검사하고 순서가 바뀌지 않도록 보장

-안전성이 높은 통신을 가능하게 해줌

-주로 파일을 전송하거나 이메일을 전송하는 등 신뢰성이 중요한 통신에서 자주 사용됨

 

※패킷 : 네트워크에서 데이터를 전송하는 단위

UDP(User Datagram Protocol) - 신호 절차 없이 일방적으로 데이터를 전달하는 비연결형 프로토콜, 데이터의 신뢰성은 낮지만 속도가 빠름 

- 데이터가 일부 손실되더라도 빠른 데이터 전송이 중요한 실시간 스트리밍에서 많이 사용됨 

- UDP는 신호 절차 없이 일방적으로 데이터를 전달하는 비연결형 프로토콜임


 

HTTP

-HTTP 프로토콜은 포트 번호 80을 사용하지만, HTTPS는 433번을 사용함

 

HTTP 메시지

 

 

 


요청 메시지

  • HTTP Method : 요청의 의도 (GET, POST, PUT, DELETE 등)
  • Request target : 요청하는 대상의 URL
  • HTTP version : HTTP 프로토콜 버전

 

HTTP 요청 메시지

  • Host : 요청하는 호스트의 이름 및 포트 번호
  • User-agent : 클라이언트가 사용하는 웹 브라우저 정보
  • Referer: 직전에 머물렀던 웹 사이트 URL
  • Accept : 클라이언트가 원하는 데이터 타입 및 우선 순위
  • If-Modified-Since : 값으로 지정한 날짜 이후에 수정된 자원을 요청
  • Authorization : 클라이언트가 가지고 있는 서버에 대한 권한 정보
  • Origin : 요청이 시작된 주소 정보
  • Cookie : 서버에 의해 설정된 클라이언트의 쿠키 정보


응답 메시지

 

HTTP 응답 메시지

  • Location : 리다이렉션 해야하는 페이지의 URL
  • Server : 서버에서 사용하는 소프트웨어 정보
  • Age : 응답이 생성되고 지난 초 단위의 시간
  • Referrer-Policy : 요청 메시지에 포함할 Referer 정보의 양을 제어
  • WWW-Authenticate : 클라이언트가 서버에 인증해야 하는 방식
  • Proxy-Authenticate : 클라이언트가 프록시 서버로 인증 정보를 보내는 방식
  • Content - Type : 응답되는 메시지의 데이터 타입

※프록시 서버 : 클라이언트와 서버 간의 인터넷 연결에서 중계 역할을 하는 서버

 


기타 프로토콜

SMTP(Simple Mail Transfer Protocol) - 전자 메일을 보내는 데 사용되는 프로토콜

 

FTP(File Transfer Protocol) - 클라이언트와 서버 간에 파일 전송을 위한 연결을 설정하고, 파일을 업로드 및 다운로드 할 수 있게 해주는 프로토콜

TCP를 사용

위 그림은 FTP가 Passive모드로 작동되는 그림

 

SSH(Secure Shell) - 클라이언트가 서버에 로그인하여 원격으로 컴퓨터를 제어하거나 파일 전송 등을 할 수 있게 해주는 프로토콜


보안

 

SSL(Secure Sockets Layer) - 클라이언트와 서버 간에 전송되는 데이터를 암호화하여 통신을 보호하고 보안을 유지하기 위해 사용되는 프로토콜

※SSL은 1990년대 초반에 만들어져서 현재는 여러가지 취약점과 보안 이슈가 많이 발견 되서 TLS를 사용함

TLS(Transport Layer Security) - SSL과 동일한 기능을 하면서 보안성이 더욱 강화되었음, 웹 브라우저와 서버 간의 통신, 이메일 및 파일 전송 등 다양한 곳에서 사용

ex) HTTP + TLS => HTTPS , FTP + TLS => FTPS, SMTP + TLS => SMTPS

 

인증 및 인가 - 보안적인 측면에서 사용자가 누구인지 확인하는 인증과 사용자가 접근할 수 있는 자원에 대한 권한을 부여하는 인가가 중요

 

쿠키 - 서버에 의해 클라이언트에 저장되는 데이터 파일, 서버의 부하가 줄어들지만, 탈취되면 개인정보가 노출될 수 있음

 

세션 - 클라이언트의 상태정보를 서버측에서 유지,  보안성은 높지만 서버에 많은 자원이 필요하기 때문에 부하가 걸릴 수 있음

 

두 가지의 쿠키, 세션 방식의 단점을 보완하기 위한 방법 JWT

 

 

JWT를 쓰는 이유 - 서버에서 토큰 정보를 유지하지 않아도 되기 때문에 서버에 대한 부담을 줄일 수 있으며, 서명을 통해 위조나 변조를 감지할 수 있고 유효 기간 설정을 통해 보안성을 높일  수 있음

 

출처 : hHttps://kdt.elice.io/explore

'CS' 카테고리의 다른 글

Microservices Architecture, MSA)란?  (0) 2025.04.09
[프로그래밍 언어론] BNF와 EBNF  (0) 2024.10.03