이카's
article thumbnail

HTTP

HTTP의 기본적인 것이 궁금하다면 아래 링크를 확인해보자!
잘 쓴 글은 아니지만 노력하여 포스팅한 글이다!

HTTP 기본 개념

이번 포스팅에서는 HTTP/1.0과 HTTP/1.1에 대해서 조금 자세히 다뤄보려고 한다.

 

 

가장 크게 3가지를 다뤄보려고 한다.

  • 커넥션 유지
  • 호스트 헤더
  • 강력한 인증 절차

 

HTTP/1.0

문서를 받았는데 주고 받기만 해서는 너무 불편한 점이 많았다. 특히 수정해야 하는 부분에서 만큼은...

이런 불편한 점을 개선하고자 1996년 HTTP Working Group에서 사람들이 사용하던 기능을 모아 문서화를 하였다. 이를 통해 몇 가지 요청을 더 사용하게 되었다.

  • 헤더 추가
    • 클라이언트는 선택적 헤더 정보를 보내 서버의 구성, 서버의 인터넷 시스템 호스트 이름 또는 번호, 승인할 문서 형식 등 정보를 보낸다.
    • 헤더 타입에는 General-Header, Request-Header , Response-Header, Entity-Header 의 정보를 담는다.
  • HEAD, POST 추가
    • HEAD 메서드는 GET처럼 작동하지만 문서 또는 리소스 헤더 정보(예:....내부의 내용를 검색하는 데만 사용한다.
    • POST 클라이언트 요청 데이터를 서버로 보낼 수 있다. 클라이언트는 GET 요청의 URL에 데이터를 추가하여 서버로 전송할 수도 있다.

 

HTTP/1.1

 

HTTP/1.1

HTTP/1.1 스펙은 1997년에 공개되었다. 내용은 엄청나게 많은 스펙이 공개되었는데, 요약하자면 아래와 같다.

  • HOST 요청 헤더를 반드시 포함
  • PUT, OPTIONS, DELETE 메서드 추가
  • HTTP 쿠키 추가
  • 캐시를 제어하는 메커니즘 추가
  • 지속 연결 기능 추가 : 3-way handler 기능과 유사
  • 등등...

솔직히 너무 많아서 이정도로 정리합니다..

자세한 내용이 궁금하신 분은 여기를 참고하길 바란다.
HTTP/1.1

 

커넥션 유지

커넥션 유지는 HTTP 프로토콜에서 클라이언트-서버 간에 데이터를 주고 받고 TCP 세션을 지속적으로 유지할 수 있느냐?에서 나온 주제이다.

HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되어있다. 이는 RTT 증가를 불러오게 되었다.

 

RTT : 패킷이 도달하고 나서 출발지로 돌아오기 까지 걸리는 시간(패킷 왕복 시간)
 

 

 

매번 RTT가 증가하니 서버의 부담이 많이 가는 것이 문제가 생겨났다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, Base64 인코딩 해결책이 나왔다.

 

이미지 스플리팅

이미지를 다운받게 되면 서버에 과부하가 걸린다. 이를 해결하기 위해 많은 이미지가 합쳐져 있는 이미지를 하나 다운받아 이를 기반으로 background-image position을 이용하여 이미지를 표기하는 방법이다.

 

코드 압축

코드 압축은 코드를 압축해 개행 문자, 빈칸을 제거하여 코드의 크기를 최소화 하는 방법이다.

 

Base64 인코딩

이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법이다. 서버에 HTTP 요청을 할 필요가 없는다는 장점이 있지만, Base64 문자열로 변환할 경우 크기가 거지는 단점이 있다.

 

커넥션 유지 - 파이프라인

 

 

클라이언트에서 서버에 응답과 요청을 반복적으로 수행한다. 순차적으로 응답과 요청이 반복됨에 따라 데이터가 진행됩니다. 장점이 있을 수도 있지만, 비효율 적이다는 단점이 크다.

이를 개선한 것이 파이프라인이다.
요청을 한번에 받고, 응답을 한번에 해주는 방법이다.

응답 속도를 엄청나게 높이는 장점이 있다.

 

호스트 헤더

 

 

HTTP/1.0에서는 환경 하나에 하나의 IP를 운영했다. 하지만 HTTP/1.1에 HOST헤더 추가를 통해 개선되었다. 이를 버추얼 호스팅이라고 하는데, HTTP/1.1에서 발전되었다.

 

인증 절차

HTTP/1.1에서 2개의 헤더가 추가되었다.

  • proxy-authentication
  • proxy-authorization

이는 HTTP/1.1 스펙에서 추가된 몇 가지 기능이 추가됨에 따라 생겨난 것이다.

  • Set-Cookie
  • 캐시 메커니즘
  • WWW-Authenticate
  • Proxy-Authenticate
  • Authentication-Info

너무 많은 내용이라 다음에 자세히 다뤄보려고 한다.

 

Referance

참고 자료
CS전공지식노트
www.w3.org

반응형
profile

이카's

@Edan Cafe ☕

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!