4. Protocol 프로토콜과 HTTP, HTTP 특징, HTTP 통신

Yeppi's 개발 일기·2022년 5월 10일
0

Web

목록 보기
4/7

1. Protocol

프로토콜

통신에 참여하는 주체들이 합의한 메시지 형식

  • 데이터 구분자 & 사용 ex. 제품ID&제품이름
  • 프로토콜 변경 시, 통신에 참여하는 모든 프로그램은 프로토콜에 맞게 수정해야 함 ⇒ 번거로움

프로토콜 변경 → XML, JSON

  • 번거로움 해결
  • XML이나 JSON 형식으로 처리 가능
  • 전달하는 데이터와 메타데이터가 함께 전달 ⇒ 데이터를 좀 더 명확하게 전달 가능

2. HTTP (Hyper Text Transfer Protocol)

클라이언트와 서버가 통신할 때 사용하는 통신 규약

  • RFC 2616 에서 규정된 웹에서 데이터를 주고받는 프로토콜

  • TCP 기반으로한 REST 특정을 모두 구현하고 있는 웹기반 프로토콜

  • HTML, XML, JSON, Image, Voice, Video, Javascript, PDF 등 컴퓨터에서 다루는 다양한 것들을 전송 가능

웹 클라이언트와 웹 서버

  • 웹 애플리케이션은 웹 클라이언트와 웹 서버가 메시지를 주고받으며 동작

  • ⇒ 이때 HTTP 프로토콜 사용


3. HTTP 특징

1) 비연결성(Connectionless)

브라우저-서버 연결은 잠깐 이뤄지고, 바로 끊긴다.

  • 브라우저에 url 입력 후 엔터치는 것 = 브라우저가 서버에 연결 요청을 하는 것

  • 이 요청한 순간 잠깐 서버와 연결 → 서버로부터 응답이 전송 → 곧 바로 연결 끊기는 것

  • 브라우저와 서버가 지속적으로 연결된 상태를 유지한다면?

    • 다른 브라우저와 연결 시 문제 발생

    • 웹 특성상 많은 브라우저와 서버가 통신하기 때문에


2) 무상태(Stateless)

상태정보를 지속적으로 유지하지 않는다.

  • 웹 서버 = (현 실습 사용) tomcat
    웹 클라이언트 = 브라우저

  • 웹 서버가 웹 클라이언트의 상태 정보를 지속적으로 유지하지 않는 것

  • 다른 값을 넘겨주면 다른 값이 찍힘
    ex. 동적페이지 → url의 id 바꿀때마다 페이지 출력

상태정보란?

  • 상태정보 : 브라우저가 서버에게 요청을 전달하면서 함께 전달한 데이터

  • 상태정보 유지가 필요한 작업은?
    쿠키(Cookie)나 세션(Session)을 이용하여 상태를 유지 = Servlet&JSP의 핵심



4. HTTP 통신

메시지 주고 받기

  • 메시지를 '주고 Request', '받는 Response' 형태의 통신 방법

Clinet-Server 통신 흐름

  1. Clinet가 Server에 요청한 후, 응답받을 때까지 대기한다.
  2. Server는 요청대기 상태였다가, 응답요청을 받으면 일련의 과정을 거친다.
  3. Server는 응답 메시지를 Clinet에게 송신한다.
  4. Client는 Server가 보낸 응답메시지를 수신한다.

Clinet-Server 통신 흐름

  • Clinet 의 대기

    • 일정 시간동안 connection이 되지 않으면?
      응답 대기하다가 자동으로 연결이 끊어짐

    • 응답 대기 중 connection이 되어서 응답 메시지가 온다면?
      응답 메시지 해석, 데이터 표시 및 처리

profile
imaginative and free developer. 백엔드 / UX / DATA / 기획에 관심있지만 고양이는 없는 예비 개발자👋

0개의 댓글