본문 바로가기

Network

[Network] HTTP / HTTPS란 무엇인가? - 티스토리

 

HTTP란?


 

HTTP(Hypertext Transfer Protocol)는 웹에서 데이터를 주고 받을 때 사용하는 네트워크 통신 규약 중 하나이다.

 

HTTP는 서버와 클라이언트의 데이터 교환을 요청과 응답으로 정의한다.

 

 

 

 

요청과 응답


 

HTTP로 요청 시 응답 또한 HTTP로 온다. 아래는 두 가지 경우의 HTTP 메세지 형식이다.

 

 

1. 요청

 

 

위 사진은 요청에 대한 HTTP 메시지의 헤더 부분이다. 각각의 네모 박스는 다음과 같은 의미를 나타낸다.

 

빨간색: Start Line, 요청의 상태를 나타냄

주황색: HTTP 메시지와 바디의 정보를 나타냄

초록색: 헤더와 바디를 구분 짓는 역할을 함 (\r: carraige return, \n: line feed)

 

(GET 요청이므로 HTTP Body 부분은 없는 것을 볼 수 있다.) 

 

 

 

 

 

2. 응답

 

\

 

위 사진은 응답에 대한 HTTP 메시지이다.

 

빨간색: Start Line

주황색: HTTP header

초록색: CRLF

파란색: HTTP Body, 서버가 반환해준 리소스이다.

 

 

Start Line


 

요청 HTTP 시작줄

요청 HTTP의 시작 줄이며, 왼쪽부터 메소드, 요청 URI, HTTP 버전을 나타낸다.

 

메소드는 URI가 가리키는 리소스를 대상으로 서버가 수행해줄 역할을 나타낸다.

자주 쓰이는 걸로 GET, POST가 있다.

 

GET: URI가 가리키는 리소스를 가져온다.

POST: URI가 가리키는 리소스에 데이터를 전송한다.

 

요청 URI는 내가 서버에 요청하는 리소스 위치이다.

 

 

응답 HTTP 시작줄

응답 HTTP의 시작줄이며, 왼쪽부터 HTTP 버전, 상태코드와 처리사유를 나타낸다.

 

상태코드는 세 자릿수로 나타내며 첫 번째 숫자에 따라 크게 5가지로 분류된다.

 

1XX : 요청을 제대로 받았고 처리 중임

2XX: 요청이 제대로 처리됨 (ex, 200ok)

3XX: 요청을 처리하려면 클라이언트가 추가 동작을 취해줘야함 (ex, 302 다른 URL로 갈것, 301 다른 URL로 이동됨)

4XX: 클라이언트가 요청을 잘 못 보내 처리를 실패함 (ex, 400 요청이 문법에 맞지 않음, 401 클라이언트가 요청 리소스에 대한 인증을 실패함, 403 클라이언트가 리소스에 대한 요청 권한이 없음, 404 리소스가 없음)

5XX: 클라이언트 요청은 정확하나 서버에서 에러가 발생 (ex, 500 서버가 요청을 처리하다 에러 발생, 503 서버가 과부하로 요청을 처리 불가)

 

 

 

HTTPS란?


HTTPS는 HTTP에서 Secure가 추가된 것이다.

 

HTTP에서 오가는 평문 메시지를 HTTPS에서 암호화하여 전송한다.

(HTTPS는 다른 글에서 자세히 다룰 예정)