Part3_HTTP

·2023년 12월 4일
0

[HTTP(Hypertext Transfer Protocol)의 개요]

[웹 서버의 이해]

웹 서버란 HTTP를 기반으로 하여 웹 페이지가 들어 있는 파일을 클라이언트에게 전송해 주는 프로그램

HTTP란 Hypertext Transfer Protocol의 약자(Hypertext란 사용자의 선택에 따라 이동이 가능한 조직화된 정보)

HTTP는 어플리케이션 레벨의 프로토콜로 TCP/IP를 기반으로 구현되는 프로토콜임

웹 서버는 소켓을 이용하여 충분히 구현 가능

예를 들어 인터넷 브라우저를 통해서 freelec의 홈페이지에 접속하면, 첫 번째 페이지가 브라우저로 전송이 되어 보여짐

마우스를 이용하여 이동하고 싶은 곳으로 이동 가능

이렇게 이동이 가능한 text를 Hypertext라고 함

[HTTP]

  • 상태가 존재하지 않은 Stateless 프로토콜

클라이언트가 요청을 보내면 서버는 이에 대한 응답을 하고 나서, 연결을 종료하고 있음

응답을 받은 클라이언트가 또 다시 서버에게 무엇인가를 요구하기 위해서는 새로운 연결을 생성해야 함

클라이언트가 다시 요청을 해도 이 클라이언트가 조금 전에 요청을 했던 클라이언트인지 인식하지 못함

다만 새로운 요청에 대해 단순히 응답만 해줌

→ 이러한 특징을 두고 HTTP를 상태가 존재하지 않는 프로토콜이라함

(참고)

연결 상태가 유지되지 않은 HTTP의 특징을 보완하고자 쿠키 혹은 세션과 같은 기술을 함께 사용하기도 함

  • 요청 메시지의 구성

웹 서버는 클라이언트 요청을 이해하고 그에 맞는 처리를 해줘야함

→ 요청 메시지의 형태를 알아야 함

요청 메시지는 요청 라인, 헤더 정보, 메시지 바디 총 3부분으로 이루어짐

요청 라인에는 요구 사항에 대한 정보가 들어있음

요청 방식에 따라서 GET 방식, POST 방식 등이 있음

메시지 헤더는 시간, 사용하는 브라우저 정보, 사용자 인증 등 HTTP 메시지에 대한 부가적인 정보를 담음

메시지 바디는 서버에게 전송할 데이터가 있는 경우에 사용되는 영역임

  • 응답 메시지의 구성

응답 메시지는 상태 라인, 헤더 정보, 메시지 바디 이렇게 총 3부분으로 이루어짐

요청 메시지와의 차이점은 요청 정보를 지니는 요청 라인을 대신해서, 상태 정보를 지니는 상태 라인이 들어감

상태 라인은 클라이언트 요청에 대한 결과를 담고 있음

예를 들어 클라이언트가 index.html 파일을 요청했을 경우, index.html이 존재하는지 아니면 존재하지 않는지

혹은 서버에 문제가 발생해서 응답해 줄 수 없는 상황인지에 대한 정보를 담고 있다.

0개의 댓글