네트워크 통신

허준호·2025년 6월 27일
0

dart 언어 공부

목록 보기
14/16
post-thumbnail

HTTP

  • HyperText Transfer Protocol
  • 원래 문서 전송용으로 설계된 상태 비저장용 프로토콜
  • 브라우저가 GET 요청으로 웹 서버의 문서를 읽어오는 용도였음
  • 지금은 서버와 클라이언트가 텍스트, 이미지, 동영상 등의 데이터를 주고 받을 때 사용하는 프로토콜로 확장됨
  • 웹 상에서 보는 이미지, 영상, 파일과 같은 바이너리 데이터도 HTTP 멀티파트나 Base64 인코딩하여 사용

무상태성

  • HTTP 는 상태 비저장 프로토콜
  • HTTP는 요청 메시지를 보내기 직전까지 대상 컴퓨터가 응답 가능한지 알 방법이 없음
  • Stateless 프로토콜, 즉 상태가 없는 프로토콜이라고 함
  • Stateful 프로토콜로는 TCP (Transmission Control Protocol)가 있음

TCP

신뢰성 있는 연결지향성 앱에서 사용 (이메일, 파일 전송, 웹브라우저)

  • Stateful 프로토콜
  • 연결되면 연결을 끊기 전까지 계속 메시지를 주고 받는 프로토콜
  • 한쪽에 문제가 생기면 다른쪽에서 감지 가능
  • 텍스트가 아닌 바이너리 데이터를 전송
  • 패킷 크기가 HTTP에 비해 작음 → 속도 빠름
  • 각 요청이 소켓 1개를 공유 (HTTP는 각 요청이 소켓 1개씩 사용)
  • 따라서 요청을 식별할 식별자가 필요
  • 응답을 알 수 있는 방법이 없기 때문에 타임아웃에 대해 직접 구현해야 함

UDP

신속한 데이터 전송이나 손실 가능성이 있는 상황에 주로 사용

  • 비연결형 프로토콜
  • 데이터 전달 보장이 안되어 신뢰성이 낮음
  • 흐름 제어 없음
  • 단순성
  • 멀티캐스팅 및 브로트캐스팅

요청 메서드

  1. GET: 데이터 조회
  2. POST: 데이터 전송
  3. DELETE: 삭제 요청
  4. PUT: 전체 수정 요청
  5. PATCH: 일부 수정 요청

RESTful API

  • REST: 분산 시스템을 위한 소프트웨어 아키텍처의 한 형태
  • RESTful 이란 REST 조건을 만족한다는 뜻
  • 요청 주소(URL)과 메서드(GET, POST 등), JSON 규격을 이용하여 API를 정의
  • 오늘날 가장 범용적으로 사용
profile
후추랑 소금 좋아하는 개발자

0개의 댓글