HTTP 웹

유진·2023년 2월 16일
0

모각소 4주차

인터넷 통신

클라이언트 <- - -> 서버

IP (Internet Procotol)

  1. IP 프로토콜의 역할
  • 지정한 IP주소에 데이터 전달
  • Packet이라는 통신 단위로 데이터 전달
    - IP 패킷 정보 : 출발지 IP, 도착지 IP
  • 전송하려는 데이터를 IP 패킷으로 감싸서 보냄
  • 양방향으로 전달 가능
    - 클라이언트 -> 서버
    - 클라이언트 <- 서버
  1. IP 프로토콜의 한계
  • 비연결성
    - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    • 일단 그냥 보냄
  • 비신뢰성
    - 중간에 패킷이 사라지거나 패킷의 순서가 보장되지 않음
  • 프로그램 구분
    - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 2개 이상일 때
    • 하나의 컴퓨터에서 메신저 & 게임을 동시에 사용할 때



TCP & UDP

TCP/IP (Transmission Control Protocol)

전송할 데이터를 TCP segment로 감싼 후에 IP 패킷이 감싸는 형태
TCP segment : 출발 Port 번호, 도착 Port 번호, 전송 제어, 순서, 검증 정보 ...
1. TCP 특징 (전송제어 프로토콜)

  • 연결지향 - TCP 3 way handshake (물리적 X, 가상의 연결)
    - SYN -> SYN+ACK -> ACK -> 데이터 전송
  • 데이터 전달 보증
  • 데이터 전달 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 대부분 TCP를 사용함

UDP (User Datagram Protocol)

  1. UDP 특징 (사용자 데이터그램 프로토콜)
  • 기능이 거의 없음
  • 데이터 전달 & 순서가 보장되지 않음 but 단순하고 빠름
  • IP와 거의 비슷 (IP + Port + checksum)



PORT

  • 같은 IP 내에서 프로세스를 구분
  • 하나의 IP에서 여러 개의 애플리케이션을 사용할 때



DNS (Domain Name Service)

  • IP는 기억하기 어려움, 변경될 수 있음
  • 저장해두자!
  • 도메인 명을 IP 주소로 변환 (도메인 - IP주소)
  • ex. 전화번호부 (이름 - 전화번호)
  • ex. google.com - 200.200.200.2



URI & Web Browser

URI (Uniform Resource Identifier)

  • URI (identifier)
    - URL (location)
    - URN (name)
  • URI == URL
  • U : 리소스 식별하는 통일된 방식
  • R : 자원, URI로 식별할 수 있는 모든 것
  • I : 다른 항목과 구분하는데 필요한 정보

URI 분석

https://www.google.com:443/search?q=hello&hI=ko

  • 프로토콜 : https
    - 어떤 방식으로 자원에 접근할 것인가를 정하는 규칙
  • 호스트명 : www.google.com
    - 도메인명 or IP주소
  • Port 번호 : 443
  • Path : /search
    - 리소스 경로, 계층적 구조
  • Query Parameter : q=hello&hI=ko
    - key=value



HTTP

HTTP (Hyper Text Transfer Protocol)

  • HTTP 메시지에 모든 것을 전송
    - HTML, TEXT, IMAGE, 음성, 영상, JSON, XML

HTTP 특징

  • 클라이언트 - 서버 구조
  • 무상태 프로토콜 (Stateless)
  • 비연결성
  • HTTP 메시지
  • 단순 & 확장 가능



클라이언트 & 서버 구조

  • Request, Response 구조
  • Client -> request -> Server
  • Client <- response <- Server



무상태 프로토콜 (Stateless)

  • 서버거 클라이언트의 상태를 계속 기억하지 않음
  • 장점 : 서버 확장성 높음 -> 응답 서버를 쉽게 바꿀 수 잇음 (무한한 서버 증설 가능)
  • 단점 : 클라이언트가 추가적인 데이터를 전송해야 함



HTTP Method

  • API 설계에서 중요한 것 : 리소스 식별
  • GET : 리소스 조회
    - query를 통해 데이터 전달
  • POST : 요청 데이터 처리, 주로 등록
    - body를 통해 데이터 전달
    • 헷갈리면 그냥 얘 쓰기
  • PUT : 리소스 대체 & 해당 리소스 없으면 생성
    - 리소스를 완전히 대체함
  • PATCH : 리소스 부분 변경
    - 리소스 전체가 아니라 부분 수정이 가능
  • DELETE : 리소스 삭제

HTTP Method의 속성

  1. 안전 (Safe)
    • 호출해도 리소스를 변경하지 않음
  2. 멱등 (Idempotent)
    • 같은 API를 여러 번 호출해도 결과가 바뀌지 않음
  3. 캐시가능 (Cacheable)
    • 응답 결과 리소스를 캐시함


출처 : [Inflearn 김영한] 모든 개발자를 위한 HTTP 웹 기본 지식

0개의 댓글

관련 채용 정보