Computer Science/BackEnd

Backend 기초 #1 | HTTP HyperText Transfer Protocl이란?

토마토. 2022. 8. 5. 11:39

[출처] HTTP - Twaino

HTTP HyperText Transfer Protocol은 웹 상에서 정보를 주고받는 방식을 정하는 프로토콜(규칙)이다. 

주로 HTML 문서를 주고 받는 데 쓰이는 HTTP는 클라이언트와 서버가 통신하는 방식을 정한다.

클라이언트(웹 브라우저)는 HTTP를 통하여 서버에 필요한 정보를 요청(Request)하고, 

서버는 클라이언트의 요청에 응답(Respond)하여 필요한 데이터를 클라이언트에게 전달한다. 

 

HTTP는 일정한 메시지의 포맷을 가지고 있다. 

  • 클라이언트가 서버에 보내는 요청 메시지(Request)

기본적으로 Request + URL + header + body의 꼴을 취한다. 

예를 들면, 

GET /images/logo.gif HTTP/1.1
GET https://naver.com

와 같이 사용할 수 있다. 

  • 서버가 클라이언트에 보내는 응답 메시지(Respond)

응답 메시지는 status code + (reason message) + header + body로 구성된다. 

HTTP/1.1 200 OK

 

서버는 클라이언트 요청에 대해 세 자리 수 응답 코드(status code)와 함께 응답한다. 

 

몇백번대 값인지에 따라 메시지의 의미가 다르다. 

1XX 코드 값은 Informational

2XX 코드 값은 Success

3XX 코드 값은 Redirection (자료 위치가 바뀌어 방향을 바꿈)

4XX 코드 값은 Client error

5XX 코드 값은 Server error를 의미한다. 

 

 

 

HTTP는 connectionless protocol, stateless protocol이라는 특징을 가지고 있다. 

  • connectionless protocol

클라이언트의 request, 서버의 respond가 끝나면, 

클라이언트와 서버의 연결을 끊는 방식의 통신이라는 것이다. 

  • stateless protocol

클라이언트 상태 정보를 저장하거나 유지하지 않는다는 뜻이다. 

 

두 특성으로 인해 HTTP 방식만으로 서버는 클라이언트 정보를 유지하는 것이 불가능해졌고, 

쿠키와 세션이 등장하는 배경이 된다

 

참고

HTTP - Twaino

HTTP - 위키백과, 우리 모두의 백과사전 (wikipedia.org)