ABOUT ME

Today
Yesterday
Total
  • HTTP 기본 지식(1)(IP,TCP,UDP,PORT,DNS,URI)
    HTTP 2021. 11. 22. 17:22

    IP(Internet Protocol)

    • 인터넷 통신에 필요
    • IP 패킷
      • 출발지 IP, 목적지 IP
    • 한계) 비연결성(받을 대상이 없어도 패킷 전송), 비신뢰성(패킷의 연결 중단 또는 불규칙한 순서), 프로그램 구분을 못함
      • 해결방안) TCP

    TCP(Transmission Control Protocol)

    • IP 패킷안에 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보, 전송 데이터 등이 포함
    • 연결 지향(선 연결 후 전송)(TCP 3 way handshake(가상 연결))
    • 순서 보장
    • 신뢰성, 대부분 application에서 사용

    TCP 3 way handshake

    • 클라이언트와 서버가 서로간에 syn(접속 요청)와 ack(요청 수락) 및 데이터 전송
    • 가상 연결

    IP 스택 4계층

    • 애플리케이션 계층 - HTTP, FTP
    • 전송 계층 - TCP, UDP
    • 인터넷 계층 - IP
    • 네트워크 인터페이스 계층(예) LAN 드라이버, LAN 장비)

    UDP(User Datagram Protocol)

    • IP + PORT(프로그램 구별해줌) + 체크섬
    • 최근에는 최적화 때문에 UDP도 사용하는 추세이다.

    PORT

    • 같은 IP 내에서 프로세스(프로그램(?)) 구분

    DNS(Domain Name System)

    • 전화등록부와 유사, IP를 미리 등록해놓고 필요할 때 사용
    • IP 변경 가능

    URI(Uniform Resource Identifier)

    • URL과 URN이 있다.
    • URL(Locator), URN(Name)
    • 자원 식별자로써, 인터넷 자원의 위치나, 이름 등을 식별하는 기능이다.

    HTTP API 설계 예시

    • 요청 패킷 전달(TCP/IP/데이터) -> 서버에 도착, HTTP 메시지 해석 -> 클라이언트로 패킷 응답 -> 클라이언트에 패킷 도착

    복습 + 궁금한점 ✔

    • 싱글톤의 기능은 @Configuration이 보장한다.(환경 설정 클래스를 CGLIB class로 변환해줌으로써)

    • AutoScaling이 쓰레드 요청 부하를 해결해줄 수 있는가?

      • 그렇다 하지만, 인스턴스를 생성해야는데 순간적으로 많은 요청이 오는 경우 과부하가 올 수 있다. 때문에 미리 인스턴스를 생성해놓는 경우도 있다.
    • lombok : @RequiredArgsConstructor로 final 생성자를 자동으로 생성해주는 기능이다.

    참고(References)

    • 인프런 '김영한' 강사님의 "HTTP 강의"

    'HTTP' 카테고리의 다른 글

    HTTP 헤더 - 일반 헤더  (0) 2021.12.01
    HTTP 상태 코드  (0) 2021.12.01
    HTTP 메서드  (0) 2021.11.28
    HTTP API  (0) 2021.11.27
    HTTP 특징  (0) 2021.11.26
Designed by Tistory.