HTTP(Hyper Text Transfer Protocol)통신의 개념

JBoB·2023년 1월 12일

안녕하세요. 오늘은 HTTP 통신에 대해 공부하는 시간을 가져보겠습니다.

HTTP 통신이란?
브라우저와 서버가 통신할 수 있도록 만들어주는 여러 프로토콜 가운데 한 종류로 웹 브라우저와 웹 서버 사이에 HTML(웹 문서를 만들기 위한 언어) 문서를 주고받는데 쓰이는 통신 프로토콜입니다.

  • HTTP 라는 길로 요청(request)응답(response) 2가지를 서로 주고 받을 수 있습니다.

    **HTTP Protocol의 특징**

    • HTTP에서는 클라이언트가 서버에 요청 메세지를 보내고 서버는 클라이언트의 요청에 대한 응답을 반환합니다. 연결 상태를 유지하지 않는 비연결성 프로토콜이며, 요청과 응답(request, response) 방식
      으로 동작합니다

    • 연결 상태를 유지하지 않는다는 말은 서버는 응답 메시지를 반환한 후에 클라이언트의 상태를 저장하지 않는다는 것입니다. 때문에 HTTP 프로토콜은 상태가 없는 프로토콜, 무상태성(stateless)라고도 불립니다. 💟 여기서 상태가 없다라는 말은 데이터를 주고받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다는 말이고, 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다는 뜻입니다. 💟

      여기서 잠깐!! 저는 http와 주로 인터넷주소에 나오는 https와의 차이가 무엇인지 헷갈렸습니다.

    • http와 https 의 차이점은?

      .http에 s는 secure. 즉,보안을 의미합니다. 쉽게 말해 프로토콜을 암호화 시킨 버전입니다. http 통신 시에는 브라우저와 웹서버 간의 주고받는 데이터가 노출되는 위험이 있습니다. 이러한 취약점을 보완하기 위해 데이터를 암호화시켜 주고받는 방법입니다. 이렇게 하면 중간에서 해킹을 당하더라도 데이터의 내용을 가늠하기 힘듭니다. 그래서 주소들이 https를 나타낸다고 볼수 있습니다.

      HTTP 요청(Request)과 응답(Response)

      HTTP 요청(Request)

      웹브라우저에서 홈페이지(Front-end 컴퓨터)가 실행중이라면
      작성한 게시물 텍스트 데이터를 HTTP를 통해 Back-end 컴퓨터로 보내고 , Back-end 컴퓨터에게 이 데이터를 데이터베이스에 저장 해달라고 요청합니다.

      HTTP 응답(Response)

      요청을 받은 Back-end 컴퓨터가 성공, 실패 등 처리 결과를 응답합니다.

      HTTP 요청과 응답 구성 요소

      출처:https://hyojin96.tistory.com/entry/HTTP-통신

    • HTTP 요청 메시지( request )는 다음 그림과 같이 요청 행, 요청 헤더, 메시지 본문이라는 세 부분으로 구성되어 있습니다.

    • 요청 메서드는 송수신 방법을 뜻하며, GET, POST, PUT, DELETE 등이 요청 메서드에 속합니다. 웹 페이지에서는 대부분의 통신에 GET 메서드를 사용하며, 폼 등을 사용해서 데이터를 전송 할 때는 POST 메서드를 사용합니다.

      GET (존재하는 자원에 대한 요청)

      웹 서버에 페이지를 요청합니다. 요청할 때 필요한 데이터는 URL에 덧붙여 보내며 텍스트 데이터만 전송할 수 있습니다.

      POST (새로운 자원을 생성)

      서버의 데이터를 갱신하거나 보내는 데이터의 양이 많을 때, 비밀번호 등의 개인 정보를 보낼 때 사용합니다.

      요청할 때 필요한 데이터는 메시지 본문에 담아서 보내며 텍스트 데이터와 바이너리 데이터를 모두 보낼 수 있습니다.

      PUT (존재하는 자원에 대한 변경)

      요청 페이로드를 사용해 새로운 리소스를 생성하거나, 대상 리소스를 나타내는 데이터를 대체합니다.

      PUT메서드는 멱등성을 가집니다. PUT은 한 번을 보내도, 여러 번을 연속으로 보내도 같은 효과를 보입니다. 즉, 부수 효과가 없습니다.

      DELETE (존재하는 자원에 대한 삭제)

      웹 리소스를 제거할 때 사용합니다. 하지만, DELETE의 경우 서버에서 클라이언트의 요청을 무시 가능하기 때문에 실제로 삭제되지 않았지만, 클라이언트는 파일이 삭제 되었다고 생각할 수 있습니다.

      그리고 HTTP 통신이 오류가 났을때 에러코드가 나오는데요.이것을 상태코드라고 합니다.

      HTTP StatusCode(상태코드)

    • 1xx : Informational - 요청 정보를 처리 중

    • 2xx : Success - 요청을 정상적으로 처리함

    • 3xx : Redirection - 요청을 완료하기 위해 추가 동작이 필요함

    • 4xx : Client Error - 클라이언트의 요청 오류

    • 5xx : Server Error - 서버 측 오류

      참고:

      https://hyojin96.tistory.com/entry/HTTP-통신

      https://wildeveloperetrain.tistory.com/37

profile
간절하고 치열하게 살자

0개의 댓글