Network 5 Layer(~Application Layer)

정 승 연·2023년 1월 19일
0
  • Application :: HTTP

    • 거의 모든 형태의 데이터 전송 가능

    • HTTP 특징

      • 클라이언트 서버 구조
        • request/response 구조
      • 무상태 프로토콜(stateless)
        • 상태가 없다. 서버가 클라이언트 상태를 보존하지 않는다.
        • ex) 점원이 고객의 노트북 상태를 유지하고 있지 않음. 고객이 많은 데이터 전송. 상태 유지 할 경우 중간에 점원이 바뀌면 안됨. 그래서 상태 유지 않하면 중간에 점원 바껴도 됨 (= 서버 확장. 무한한 증설 가능)
        • 장점
          • 서버 확장성 높음 상태 유지 안해도 되서. 아무 서버나 호출해도됨
        • 단점
          • 클라이언트가 긴 데이터 전송
        • 실무 한계
          • 무상태로 설계할 수 없는 경우도 있음. 브라우저 쿠키, 서버 세션 등으로 상태 유지
      • 비 연결성
        • HTTP는 기본이 연결을 유지 하지 않음
        • 그래서 1시간동안 수천명이 서비스 이용해도 동시 처리량은 매우 작음
        • 장점
          • 서버 자원을 매우 효율적으로 사용할 수 있음
        • 한계와 극복
          • 계속 TCP / IP 연결 새로 하면 3 way handshake 시간 추가됨

            → 지금은 HTTP 지속 연결(Persitent Connection)로 문제 해결

    • HTTP 메시지

      • start-line

        • 요청 메시지

          • method - HTTP 메소드
            • 종류 : GET(리소스조회),POST(요청내역 처리) ,PUT,DELETE
          • request-target - 요청 대상
            • 절대 경로 쿼리
          • HTTP-version
        • 응답 메시지

          • HTTP-version
          • status-code - 상태 코드
            • 200성공 / 400 클라이언트 요청 오류 / 500 서버 오류
          • reason-phrase - 이유 문구
      • HTTP 헤더

        • HTTP 전송에 필요한 모든 부가 정보 ex) 메시지 바디 내용, 메시지 바디 크기, 압축, 인증 …
      • HTTP 메시지 바디

        • 실제 전송 할 데이터
        • HTML 문서, 이미지, 영상 JSON 등 byte로 표현 할 수 있는 모든 데이터 가능
    • HTTP 메시지 전송/응답

      • 전송

      1. Client 웹 브라우저가 HTTP 메시지 생성

      2. Socket 라이브러리로 전달

      3. TCP / IP Packet + 전송 데이터(HTTP 메시지)


      • 응답
    • HTTP API

0개의 댓글

관련 채용 정보