HTTP프로토콜은 인터넷상에서 데이터를 주고받기위한 프로토콜입니다.

서버/클라이언트 모델을 준수한 프로토콜로 TCP/IP 위의 어플리케이션 계층에서 사용하는 프로토콜입니다.

HTTP는 어떤 종류의 데이터든지 전송할 수 있도록 설계되어 HTML문서, 이미지, 동영상, 오디오, 텍스트문서 등을 주고받을 수 있습니다.

작동방식

HTTP는 서버 / 클라이언트 모델을 따릅니다. 클라이언트에서 요청을 보내면 서버는 요청을 처리하여 응답하는 구조로 되어있습니다.

일반적으로 클라이언트는 브라우저에 해당하고, 서버는 웹서버 혹은 WAS가 해당됩니다. 웹서버의 표준포트는 80번입니다.

Connectionless과 Stateless

HTTP는 Connectionless방식으로 작동합니다. 서버에 연결하고 요청하여 응답을 받고나면 연결을 끊어버리죠. 즉 자원하나당 하나의 연결을 만드는 개념입니다. 그럼 이런 작동방식의 장단점은 무엇일까요?

  1. 장점 : 불특정 다수를 대상으로 하는 서비스에 적합합니다.

→ 수십만명이 웹서비스를 사용하더라도 접속유지를 최소화 할 수 있어 더 많은 유저의 요청을 처리할 수 있습니다.

  1. 단점 : 연결을 끊어버리기 때문에 클라이언트의 이전 상태를 알 수 없습니다.

→ 때문에 로그인을 하더라도 로그인정보를 유지하기위해선 쿠키 혹은 세션, JWT등 별도 방법을 사용해야합니다.

URI

브라우저(클라이언트)는 URI를 통해 자원의 위치를 찾습니다.

HTTP는 전송프로토콜이고 URI는 자원의 위치를 알려주기 위한 프로토콜로 흔히 웹페이지로 이동하기 위한 주소체계를 뜻합니다.

http://www.~~~.com/main.php 라는 주소체계를 통해

http프로토콜을 사용하고 ip주소하위의 main.php라는 이름의 자원을 요청한다는 뜻이죠

메소드