아직은 NULL NULL 합니다

HTTP(Hyper Text Transfer Protocol) 의 개념, 특징 및 HTTP/2, HTTP/3, HTTPS 의 차이점을 가볍게 알아보자. 본문

Computer Science/네트워크

HTTP(Hyper Text Transfer Protocol) 의 개념, 특징 및 HTTP/2, HTTP/3, HTTPS 의 차이점을 가볍게 알아보자.

is낫널 2023. 9. 19. 00:38
728x90
서론 

블로그 쓰는 일이 여간 쉬운 일이 아니다. 
그래도 이렇게 CS 스터디를 하다 보니 공부한 내용을 정리할 겸 1일 1 블로그를 강제라도 하는 기분이다 ㅎ..ㅎ 

근데 또 주기적으로 이 블로그에 들어오니까 금새 나만의 블로그라는 정이 생긴 것 같기도 하다. 

어찌 됐든 데이터가 쌓여서 내게 도움이 되길 바라는 마음으로 공부했던 내용을 또 써 내려가보자. 

 

해당 더보기 는 이 글을 읽으면서 헷갈릴 만한 개념을 정리한 내용이 담겨있습니다. 

더보기

개념 정리

 

  • 프로토콜(protocol)
    • 컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규약
  • ASCII (아스키코드) 
    • 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 
    • 인코딩 이란, 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다.

 

본론

 

HTTP(Hyper Text Transfer Protocol) 란? 

텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 

조금 더 자세히 설명하자면, 

HTML, CSS, JavaScript, image 같은 콘텐츠(JSON 데이터 및 XML 형태의 정보도 가능하다.)를 

주고받기 위해서 클라이언트와 서버가 서로 알아들을 수 있는 공통의 약속인 메시지가 필요한데, 그것을 HTTP라고 한다.

 

 

HTTP의 동작흐름

클라이언트가 요청(Request)을 보내면, 서버 측에서 응답(Response)을 하는 구조로 동작한다. 

→ 이때, 클라이언트와 서버 사이의 소통은 평문(ASCII) 메시지로 이루어진다. 

 

 

 

클라이언트 - 서버 간의 HTTP 통신 예시

  1. 클라이언트 측에서 로그인을 하기 위해 아이디와 비밀번호에 대한 정보를 입력하여, 서버 측으로 요청을 보낸다.
  2. 아이디와 비밀번호를 받은 서버 측은 데이터베이스에서 해당 아이디와 비밀번호가 들어맞는 회원을 찾아 클라이언트에게 응답을 보낸다.

 

 

HTTP의 특징

  • 연결 상태를 유지하지 않는 비연결성 프로토콜(Stateless Protocol)이다. 
    • 비연결성이라고 얘기하는 것은 이전 요청과 다음 요청이 연결되어 있지 않다는 의미이다. 
      즉, 지속적으로 연결되지 있지 않다는 의미이며, 하나의 요청/응답 안에서는 연결된 상태로 통신하는 것이다.
      ▶ 그래서, TCP 기반으로 동작한다는 것은 하나의 요청 - 응답 내의 이야기를 말하는 것이다. 
    • 비연결성 프로토콜이라는 특징은 로그인을 한 회원의 상태를 유지하지 않기 때문에(다시 리로드 되었을 때 로그아웃 되어있는 경우)Cookie와 Session을 통해 회원의 상태를 유지할 수 있다.
  • OSI 네트워크 통신 모델의 애플리케이션 계층(Application Layer) 프로토콜이다.
    • 애플리케이션 계층의 프로토콜은 전송 계층(Transport Layer) 프로토콜(TCP / UDP)을 사용하여 호스트 간 연결을 확립한다. 
    • HTTP는 주로 TCP 기반으로 동작하며, HTTP/3 부터는 UDP 를 사용한다.
  • HTTP 는 기본 80 포트 을 사용한다.

 

 

 

HTTP 메시지 구조 

출처 : https://deepwelloper.tistory.com/98

 

 

 

HTTP Method

서버로 어떤 목적을 가지고 요청을 하는지 표시해 주는 것이 HTTP Method이다. 그 안의 대표적인 메서드가 GET, POST이다. 이다.

하지만 요즘에는 DELETE, PUT 등 요청에 명확한 의미를 주고자 다양한 메서드가 생기게 되었다.

  • 요청의 종류 
    • GET : 자료를 요청할 때 사용
      • 특징 : 요청 URL에 데이터를 붙여서 전송
      • 단점
        1. 요청 URL 길이에 제한이 있다.
        2. 전송 데이터 노출에 따른 위험이 있다.
    • POST : 자료의 생성을 요청할 때 사용
      • 특징
        1. HTTP body에 데이터를 담아서 전송
        2. 데이터 전송 길이에 대한 제한이 없다.
        3. HTTP body 에 데이터를 담으므로 노출이 되지 않는다.
          1. 하지만 이는, 보안성과는 아무런 관련이 없다. body의 정보도 중간에 가로채서 보려고 하면 볼 수 있기 때문이다. → 데이터를 암호화하기 위해서는 HTTPS 프로토콜을 사용해야 한다.

 

 

 

HTTP/2, HTTP/3, HTTPS의 차이점은 무엇인가?

1996 ~ 1997 년에 출시된 최초의 HTTP 버전이 HTTP/1.1이다.

HTTP/2와 HTTP/3 은 프로토콜 자체를 업그레이드 한 버전이다. 

 

HTTP/2 의 특징

  • 텍스트 형식 대신, 바이너리로 데이터를 교환한다.
  • 서버가 새 HTTP 요청을 기다리는 대신, 클라이언트 캐시에 응답을 사전에 전송할 수 있다.

HTTP/3 의 특징

  • 비교적 최근에 나온 버전으로, HTTP/2 를 한 단계 발전시킨 것이다.
  • HTTP/3 의 목표는 실시간 스트리밍 및 기타 최신 데이터 전송 요구 사항을 보다 효율적으로 지원하는 것으로 OSI 네트워크 계층 통신 모델의 전송 계층(Transport Layer) 의 UDP 기반으로 동작한다.

 

여기서 HTTPS 란, HTTP 에서 데이터 보안 문제를 우선시 함으로써 등장하게 된 프로토콜로 HTTP 프로토콜에 secure socket layer(SSL)가 붙은 프로토콜이다. 최신 시스템에서는 SSL/TLS 와 함께 HTTP/2 를 HTTPS 로 사용하고 있다.

HTTPS 의 특징

  • 기본 443 번 포트를 사용한다.
  • 이를 사용하려면 Tomcat 서버에 secure socket layer(SSL) 프로토콜 까지 연동을 해야 한다.

 

 

 

 

HTTP/3 에 관한 내용은 문동욱 개발자님의 블로그를 보고 둘러보는 것을 추천합니다. 

내용이 정말 자세하고 설명을 잘해주셔서 감탄하면서 보았던 글입니다! 

 

 

HTTP/3는 왜 UDP를 선택한 것일까?

는 의 세 번째 메이저 버전으로, 기존의 HTTP/1, HTTP/2와는 다르게 UDP 기반의 프로토콜인 을 사용하여 통신하는 프로토콜이다. HTTP/3와 기존 HTTP 들과 가장 큰 차이점이라면 TCP가 아닌 UDP 기반의 통

evan-moon.github.io

 

 

728x90

'Computer Science > 네트워크' 카테고리의 다른 글

REST, REST API, RESTful API 란 ?  (0) 2023.10.26