http & 웹 서버

·2022년 12월 13일
0

study

목록 보기
1/81
post-thumbnail

http의 이해

데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP.
(통신 규약: Protocol)

매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약입니다.

통신 규약이란, 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속을 의미합니다.

HTTP라는 통신 규약을 이용하여, 서버나 클라이언트(브라우저)끼리 의사 소통을 할 수 있게 됨.

의사 표현의 수단: (현실 세상) 말 ↔ (디지털 세상) 네트워크
의사 표현의 방법: (현실 세상) 언어 ↔ (디지털 세상) 통신 규약

HTTP로 데이터를 주고 받는 방법

  • HTTP에서는 언제나 Request, Response라는 개념이 존재.
  • 서버와 브라우저의 관계로 설명하자면 아래와 같이 동작합니다.
    1. 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)합니다.
    2. 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 반환(Response)해줍니다. 없다면 없는 페이지에 대한 데이터를 반환합니다.
      (일반적인 웹 서버 기준)
    3. 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줍니다.
  • 그리고 위와 같은 사례에서 "데이터"는 어떠한 데이터든 주고 받는게 가능합니다.

HTTP 구성 요소

  1. Method 설명
  • GET: 이름 그대로 어떤 리소스를 "얻을 때" 사용됩니다.
    그리고 브라우저는 기본적으로 여러분이 웹 서핑을 한다고 가정하므로 모든 요청은 "GET" 메서드를 사용해서 서버에 요청을 보냅니다.

  • POST: 웹 서버에 데이터를 "게시"할 때 사용하는게 일반적입니다.
    (ex. 회원가입, 게시글 작성, 댓글 작성)

  1. Header 설명 (추가 데이터. 메타 데이터)
  • 브라우저가 어떤 페이지를 원하는지
  • 요청 받은 페이지를 찾았는지
  • 성공적으로 찾았는지

이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받는다.
위에서 설명 된 메서드도 사실은 헤더에 포함되어 서버로 보내진다.

  1. Payload 설명 (데이터. 실질적인 데이터)
  • 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있습니다.
  • 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있습니다.
    그리고 "GET method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속입니다.
  • 추가적으로 DELETE method에서 Payload를 보낼수있지만, 보통 많은 경우에 Payload를 보내지않고있습니다.

웹 서버

웹서버는 인터넷을 통해 HTTP를 이용하여 웹상에서 클라이언트의 요청을 응답해주는 통신을 하는 컴퓨터 또는 프로그램

웹 서버의 기본 동작 원리

  • 브라우저를 통해 HTTP request로 웹사이트를 웹서버에 요청합니다. 이후 웹서버는 요청을 승인하고 HTTP response를 통해 웹사이트 데이터를 브라우저에 전송합니다. 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 합니다.
  • 기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청하게 됩니다.

+++ 더 찾아보기
웹 서버 (Web Server)와 웹 어플리케이션 서버(WAS)는 어떤 차이점이 있을까요?
HTTP와 HTTPS의 차이점은 무엇일까요?

profile
개발자 꿈나무

0개의 댓글