devlog

[Web] HTTP란 무엇인가? 본문

Web

[Web] HTTP란 무엇인가?

bellaah 2019. 9. 8. 23:39

웹 개발자라면 HTTP에 대해서 잘 알아야 원하는대로 동작하게 만드는 것이 수월할 것이다.

하지만 글쓴이도 프론트엔드 개발을 하면서 HTTP를 공부하지 않았다. 그리고 백엔드를 개발하는 과정에서 HTTP를 공부하며 느낀 것이 프론트엔드를 개발할 때도 HTTP의 개념을 아는 것이 중요하다는 것이다. 프론트엔드를 개발할 때 데이터를 서버로 전송하는 등 HTTP를 이해해야 하는 부분들이 있다고 생각한다.

 

1. HTTP란?

HTTP란 HyperText Transfer Protocol의 약자로 하이퍼텍스트 문서를 교환하기 위하여 사용된 통신 규약이다. 즉, 웹 서버와 클라이언트 간의 통신을 하기 위한 통신 규약이며 HTTP는 1989년 팀 버너스-리에 의해 처음 설계되었다. 

HTTP는 웹에서만 사용하는 프로토콜로 TCP/IP 기반으로 서버와 클라이언트의 요청과 응답을 전송한다.

 

2. HTTP의 동작

  • HTTP 메시지는 HTTP 서버와 HTTP 클라이언트에 의해서 해석된다.
  • HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜이다. 이러한 단점을 해결하기 위해 Cookie와 Seesion 등장하였다.
  • HTTP는 연결을 유지하지 않는 프로토콜이기 떄문에 요청/응답(request/response) 방식으로 동작한다.

HTTP는 위의 그림과 같이 동작한다. 무슨 말인가하면 client는 server에게 request(요청)을 보낸다. 그럼 요청을 받은 server가 해야 할 일은 response(응답)을 보내는 것이다. 

예를 들어 이야기해보자. 우리가 회원가입을 하려고 한다. 회원가입 양식을 다 작성한 후 회원가입 버튼을 눌렀을 때 우리가 작성한 양식의 data는 server가 database에 저장해준다. 그리고 사용자는 회원가입이 완료되었다고 뜨는 페이지를 보게될 것이다. 이러한 일이 일어나는데 이 과정을 순서대로 적어보자. 

회원가입 버튼을 누르면 client가 server에게 request를 보내는 것이다. 그러면 server는 지정한 방식으로 request가 왔기때문에 그 요청이 오면 request객체가 가지고 있는 data를 저장하도록 코딩을 해놨을 것이다. 그렇게 data를 저장한 후 client에게 회원가입이 완료되었다는 페이지를 보여주기 위해 server는 어떠한 페이지를 보여주는 역할을 response를 통해 하는 것이다. 

이런 과정을 HTTP를 통해 하는 것이다. 

HTTP 메소드와 HTTP 응답 코드 종류에 대해서는 다음 포스팅에 알아보려고 한다.

'Web' 카테고리의 다른 글

[Web] REST API  (1) 2020.01.20
[Web] Http 통신과 Socket 통신  (0) 2019.11.14
[Web] 쿠키(cookie)와 세션(session)  (0) 2019.09.14
[Web] HTTP 응답 코드  (0) 2019.09.12
Comments