HTTP란?

trevor1107·2021년 2월 17일
0

네트워크

목록 보기
2/6

HTTP란?

  • HTTP란 Hyper Text Transfer Protocal의 약자로 하이퍼텍스트 문서를 교환하기 위한 프로토콜
  • 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 전송 프로토콜

통신 프로토콜(규약)

컴퓨터나 원거리 통신 장비 사이에서 메세지를 주고 받는 양식과 규칙의 체계를 말한다.
상호 합의하에 정해진 조건을 약속한 형태로 데이터를 주고 받는 것!

프로토콜의 주요 요소

  • 구문(Syntax) : 데이터의 형식, 부호화, 신호 레벨 등을 가리키는 것
  • 의미(Semantics) : 데이터가 갖는 의미, 특정 패턴에 대한 해석과 해석에 따른 전송제어, 오류수정 등에 관한 제어정보를 규정하는 것
  • 시간(Timing) : 두 개체 간의 통신속도, 메세지의 전송시간 및 순서 등을 규정하는 것

무엇을 - 구문(Syntax) / 어떻게 - 의미(Semantics) / 언제 - 시간(Timing)

HTTP의 특징

  • 애플리케이션 레벨의 프로토콜로 TCP/IP을 기반으로 한다.
  • 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)
  • 기본 포트는 80이다. (https는 기본 포트가 443) [이유]
  • 연결 상태를 유지하지 않은 비상태연결성(Stateless, Connectless) 프로토콜

비상태연결(Stateless, Connectless)

서버에 연결하고 요청해서 응답 받으면 연결을 끊어버리는 것을 말한다.

  • 장점
    데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가되며, 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없어져 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고 다수의 요청 처리 및 서버 부하를 줄일 수 있다.
    그래서 접속 유지를 최소화하고 불특정 다수를 대상으로 하는 서비스에 유리하다.

  • 단점
    연결을 끊어버리기 때문에 클라이언트의 이전 상태를 알 수 없어 로그인을 해도 정보유지가 불가능하다. 이런 단점을 해결하기 위해서 쿠키(Cookie)와 세션(Session)이 생겨났다.

Keep-Alive

HTTP 1.1버전 부터는 Keep-Alive 기능을 지원한다.
HTTP는 하나의 연결에 하나의 요청을 하는 것을 기준으로 설계가 되었다. 문서에 여러개의 파일이 있다면 계속 연결과 다운 하고 연결을 끊어야한다. 그러다 보면 TCP 통신 과정에서 비용이 많이 소모된다.
그래서 나온 것이 keep-alive인데 지정된 시간동안 연결을 끊지 않고 요청을 계속해서 보낼 수 있다.

https를 간단하게 짚고 넘어가자

SSL은 전자상거래에서의 데이터 보안을 위해서 개발한 통신 레이어다. SSL은 표현계층의 프로토콜로 응용 계층 아래에 있기 때문에, 어떤 응용 계층의 데이터라도 암호화해서 보낼 수 있다.

이미지 출처 : 빨간색코딩

  • HTTPS의 기본 포트는 443이고, HTTP에 비해서 많이 느린편이다.
profile
프론트엔드 개발자

0개의 댓글