새소식

반응형
250x250
💻 Computer Science/📡 Network

[네트워크] HTTP란? / HTTPS와의 차이점

  • -
728x90
반응형

◾ 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받기 위한 프로토콜

 

요청 (Request)

 

클라이언트가 서버에 자원을 요청하는 행위

 

응답 (Response)

서버가 클라이언트의 요청에 대한 결과를 응답하는 행위

 

 

 Stateless(무상태성)

 

서버가 클라이언트 상태 정보를 저장하지 않아 클라이언트가 상태 정보를 HTTP에 실어 요청

각각의 요청이 독립적으로 처리되며, 이전 요청과의 연결이나 클라이언트 상태를 기억하지 않음

Connectionless(비연결성)

◽ 요청과 응답이 한 번 이루어지면 연결 종료

◽ 수많은 클라이언트 요청 대응에 유리, 서버 자원 효율적 관리

 

 Request-Response 모델

◽ 클라이언트가 요청을 보내고 서버가 응답하는 형태의 모델

◽ 클라이언트는 요청 메소드를 사용해 원하는 동작을 서버에 전달, 서버는 상태 코드와 데이터를 포함한 응답 반환

URI(Uniform Resource Identifier)

◽ HTTP는 리소스를 식별하기 위해 URI 사용

◽ 클라이언트는 URI 통해 서버에 요청할 리소스 지정

◽ URL(Uniform Resource Locator) : URI를 표현하는 특정한 형태의 식별자

 

 

 

 

 GET

    ◽ 리소스 조회

 POST

    ◽ 요청 데이터 처리, 주로 데이터 등록에 사용

 PUT

    ◽ 리소스 대체, 해당 리소스가 없으면 생성

 PATCH

    ◽ 리소스 일부 변경

 DELETE

    ◽ 리소스 삭제

HEAD

    ◽ GET과 동일하지만 응답 본문이 포함되지 않음

OPTIONS

    ◽ 서버의 제공 메소드 등을 알아보기 위해 사용, 주로 CORS에 사용됨

 

 

 1xx(정보)

    ◽ 요청을 받았으며 프로세스를 계속 진행

 2xx(성공)

    ◽ 요청을 성공적으로 받았으며, 인식했고 수용함

 3xx(리다이렉션)

    ◽ 요청 완료를 위해 추가 작업 조치가 필요

 4xx(클라이언트 오류)

    ◽ 요청의 문법이 잘못됐거나 요청을 처리할 수 없음

 5xx(서버 오류)

    ◽ 서버가 유효한 요청에 대해 응답 실패

 

 구조

    

 요청 메시지

   

◾ 시작 라인(Start Line)

    ◽ Method : GET / POST / PUT / DELETE 등의 HTTP 메소드

    ◽ URL : 요청 대상 경로

    ◽ Version : 사용된 HTTP 버전

◾ 헤더(Headers)

    ◽ Heathers : HTTP 전송에 필요한 부가 정보

    ◽ 메시지 크기, 압축 여부, 인증, 브라우저 정보, 서버 정보, 캐시 등

◾ 공백 라인(Empty Line)

    ◽ 헤더와 바디를 구분하기 위한 라인

◾ 바디(Message Body)

    ◽ 실제 전송할 데이터 (HTML 문서, 이미지, 영상, JSON 등)

 

 응답 메시지

 

◾ 시작 라인(Start Line)

    ◽ Version : 사용된 HTTP 버전

    ◽ Status Code : 클라이언트가 보낸 요청의 성공/실패 여부를 나타내는 숫자 코드

    ◽ Status Message : Status Code 의미를 글로 표현

헤더(Headers)

    ◽ Heathers : HTTP 전송에 필요한 부가 정보

    ◽ 메시지 크기, 압축 여부, 인증, 브라우저 정보, 서버 정보, 캐시 등

◾ 공백 라인(Empty Line)

    ◽ 헤더와 바디를 구분하기 위한 라인

◾ 바디(Message Body)

    ◽ 전송받은 데이터 (HTML 문서, 이미지, 영상, JSON 등)

 

HTTP/0.9

◾ GET 메소드만 지원, HTTP 헤더 X

 HTTP/1.0

◾ 메소드, 헤더, 상태코드 추가

    ◽ 메소드 : POST 메소드 추가

    ◽ 요청 헤더 : HTTP 버전 추가

    ◽ 응답 헤더 : 상태코드와 CONTENT-TYPE이 생겨 HTML 파일 외 다른 타입 데이터도 전송 가능

    ◽ Connection : 요청마다 매번 새로운 연결로 성능 저하 및 서버 부하 비용 증가

 HTTP/1.1

◾ 현재 가장 많이 사용되는 버전으로 대부분의 기능 추가

    ◽ 메소드 : 나머지 메소드 추가

    ◽ Persistent connection : 한 번 사용한 커넥션 재사용

    ◽ Pipelining : 여러 개의 HTTP 요청 가능

    ◽ Head of Line Blocking : 우선 들어온 요청 응답 시간이 길어지면 후순위 요청 응답 시간도 길어짐

 HTTP/2.0

◾ HTTP 1.1 성능 개선 및 확장

    ◽ 메시지 전송 방식 변화 : 메시지를 바이너리 형태 프레임으로 나눠 여러 요청과 응답을 병렬적으로 전송

 HTTP/3.0

◾ UDP 기반 QUIC 프로토콜 사용

    ◽ QUIC 프로토콜 : TCP의 문제점을 해결하고자 구글이 개발한 UDP 기반 프로토콜

    ◽ 기존 TCP의 새로운 연결에 대한 지연 시간 해결

 

 

보안 강화

 

HTTP는 암호화 과정을 거치지 않아 중요한 정보가 노출되거나 조작될 수 있어 보안적으로 보완 필요

 HTTPS : SSL을 거쳐  SSL이 TCP와 통신함으로써 HTTP 암호화

    ◽ SSL(Secure Socket Layer) : 인터넷을 통해 전달되는 정보를 보호하기 위해 개발한 통신 규약

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.