본문 바로가기
  • 실행력이 모든걸 결정한다
IT 상식

HTTP/HTTPS와 SSL이란?

by 김코더 김주역 2021. 3. 12.
반응형

 

1. HTTP란?

HyperText Transfer Protocol, 하이퍼텍스트 전송 통신규약

 

여기서 HTTP를 정확하게 이해하기 위해서는 HyperText가 무엇인지 이해할 필요가 있다.

HyperText는 이런식으로 다양하게 정의할 수 있다.

  • 하이퍼링크와 쌍방향성이라는 컴퓨터의 특성을 결합한 것
  • 다른 문서를 연결하고 있는 문서의 일부분
  • 사용자들이 원하는 정보를 클릭함으로써 원하는 정보에 쉽게 접근하는 방식
  • hyper(건너편의, 초월, 과도한) + text의 합성어

 

이 외에도 여러 정의들이 있지만 맥락은 비슷하며, 위 내용들을 종합해보면 HyperText는 다른 문서로 넘나들수 있게 하는 링크 텍스트를 의미한다. 그리고 HTTP는 HyperText에 대한 통신규약(Protocol)이며, 웹 서버와 웹 클라이언트 사이에서 데이터를 주고 받기 위해 사용되는 통신 방식으로 TCP/IP 프로토콜 위에서 동작한다. 이름대로라면 하이퍼텍스트 전송용 프로토콜이지만, 실제로는 컴퓨터에서 다룰 수 있는 데이터라면 무엇이든 전송할 수 있다.

 

 

2. HTTP 메소드

HTTP 메소드를 통해서 클라이언트가 원하는 처리 방식을 서버에 알려줄 수 있다. 요청 URL와 함께 다음과 같은 HTTP 메소드를 같이 명시할 수 있다. 기본적으로 브라우저 상단의 주소창에서는 GET 방식의 요청이 이루어진다.

 

각 HTTP 메소드의 용도를 정리하면 다음과 같다. 여기서 가장 많이 사용하는 HTTP 메소드는 GET과 POST다. 

  • GET : 리소스 취득
  • POST : 리소스 생성 및 추가
  • PUT : 리소스의 전체를 변경
  • PATCH : 리소스의 일부만 변경
  • DELETE : 리소스 삭제
  • HEAD : 리소스를 GET 메소드로 요청했을 때 돌아올 헤더를 요청

※ GET 요청은 요청 파라미터를 URL의 뒷 부분에 붙이는 반면에 POST 요청은 요청 파라미터를 요청 메시지의 바디에 넣는다는 차이가 있다.

 

 

3. HTTP 상태 코드

HTTP 요청에 대한 응답 메시지로 HTTP 상태 코드를 받을 수 있다. 상태 코드는 3자리 숫자로 되어 있는데, 첫 번째 숫자는 HTTP 응답의 종류를 구분하고 나머지 두 개의 숫자는 세부적인 응답의 내용을 구분하기 위한 번호다.

 

1) 응답의 종류 구분

  • 1xx : 현재 클라이언트의 요청까지 처리되었으니 계속 진행하라는 의미
  • 2xx : 성공
  • 3xx : 리다이렉션
  • 4xx : 클라이언트 에러
  • 5xx : 서버 에러

 

2) 자주 사용되는 상태 코드

  • 200(OK) : 서버가 GET 요청을 성공적으로 처리함
  • 201(Created) : 서버가 POST 요청을 성공적으로 처리하여 새로운 리소스가 생성됨
  • 202(Accepted) : 요청은 접수했지만 처리가 완료되지 않음
  • 206(Partial Content) : 서버가 PATCH 요청을 성공적으로 처리하여 리소스의 일부가 변경됨
  • 301(Moved Permanently) : 지정한 리소스가 새로운 URI로 이동함
  • 307(Temporary Redirect) : 요청한 URI가 없다는 의미로, 302의 의미를 정확하게 재정의함
  • 400(Bad Request) : 요청의 구문이 잘못됨
  • 401(Unauthorized) : 필요한 인증 관련 내용이 요청에 없어서 지정한 리소스에 접근할 수 없음
  • 403(Forbidden) : 지정한 리소스에 대한 접근이 금지됨
  • 404(Not Found) : 지정한 리소스를 찾을 수 없음
  • 500(Internal Server Error) : 내부 서버 오류
  • 502(Bad Gateway) : 게이트웨이 또는 프록시 서버가 뒷단의 서버로부터 잘못된 응답을 받음
  • 503(Service Unavailable) : 과부하나 서비스 점검 등의 이유로 서비스를 제공할 수 없음

 

 

4. HTTP 메시지 확인법

HTTP 메시지는 요청/상태 라인, 헤더, 바디로 구성되어 있다. 브라우저에서 HTTP 메시지를 직접 확인해보자.

 

[Ctrl+Shift+i 또는 웹 페이지 우클릭 -> 검사 -> Network 탭]

 

이렇게 Network 탭으로 들어오면 웹 페이지의 파일 목록이 뜨고

 

파일들을 누르면 Headers 탭에서 해당 파일의 HTTP 메세지를 확인할 수 있다.

 

 

5. HTTPS 란?

HTTPS의 S는 Secure을 뜻한다.

HTTP의 보안적인 약점을 보완한 버전이며 인증과 암호화를 진행하게 된다.

HTTP가 SSL을 같이 이용하게 되면 HTTPS가 되는 것이고, SSL가 무엇인지는 다음 절에서 설명한다. 

 

 

6. SSL 이란?

Secure Sockets Layer, 보안 소켓 계층

인터넷에서 데이터를 안전하게 전송하기 위한 프로토콜이다.

TLS이라는 이름으로 사용하기도 하지만 주로 SSL이라고 한다.

HTTPS과 비슷한 개념인데, 웹이 인터넷에서 돌아가는 서비스들중 하나인 것처럼 HTTPS는 SSL 프로토콜 위에서 돌아가는 프로토콜이라고 이해하면 된다.

 

참고로 SSL 인증서라는 문서도 있는데, 클라이언트가 서버에 접속하게 될 때 클라이언트가 받는 문서이다.

그 후 클라이언트는 인증서를 보고 신뢰할 수 있는 서버인지 판단할 수 있게 된다. 

 

반응형

'IT 상식' 카테고리의 다른 글

HTTP Cache 기초  (0) 2021.12.25
OSI 7Layer 설명 및 예시  (0) 2021.09.10
REST API란?  (0) 2021.05.03
Domain/DNS/Port/Internet(ip)  (0) 2021.03.27
메모리의 구조  (0) 2021.03.12

댓글