HTTP(HyperText Transfer Protocol)란?

  • 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP
  • 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약이다.
  • 여기서 말하는 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속을 의미
  • 현재 이용되는 대부분의 웹 서버가 HTTP를 기반으로 데이터를 주고 받습니다. 또한, 모든 브라우저는 HTTP 프로토콜을 기본으로 지원한다.

 

어떻게 HTTP로 데이터를 주고 받을까?

 

 

  • HTTP에서는 언제나 Request, Response라는 개념이 존재한다.
  • 서버와 브라우저의 관계
    • 브라우저는 서버에게 자신이 원하는 페이지(URL등의 정보)를 요구(Request)한다.
    • 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 실어 응답(Response)해준다. 
    • 없다면 없는 페이지에 대한 데이터를 반환해준다.
    • 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려준다.

 

HTTP의 구성 요소

  • Method (호출/요청 방식)
    • GET: 이름 그대로 어떤 리소스를 얻을 때 사용. 브라우저의 주소창에 URL을 입력하면 GET 메서드를 사용해서 서버에 요청을 보낸다.
    • POST: 웹 서버에 데이터를 게시할 때 사용하는게 일반적 (ex. 회원가입, 게시글 작성, 댓글 작성)
  • Header (추가 데이터. 메타 데이터)
    • 브라우저가 어떤 페이지를 원하는지
    • 요청 받은 페이지를 찾았는지
    • 요청 받은 데이터를 성공적으로 찾았는지
    • 어떤 형식으로 데이터를 보낼지
    이러한 사례 외에도 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받는다. 위에서 설명 된 메서드도 사실은 헤더에 포함되어 서버로 보내진다.
  • Payload (데이터. 실제 데이터)
    • 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있다.
    • 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있다. 그리고 "GET method를 제외하곤 모두 Payload를 보낼 수 있다" 는게 HTTP에서의 약속!

 

웹 서버의 이해

① 웹 서버란?

  • 웹 서버는 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터

② 웹 서버의 기본 동작 원리

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

면접 예상 질문 : google.com 에 접속하면 보여지는 화면에 대한 데이터는 어떻게 받아오는걸까요?

더보기

답 : 사용자가 브라우저에 주소(URL)를 입력하면 해당 동작에 맞게 HTTP 데이터를 만들어 서버로 보내고 서버는 알맞는 응답 데이터를 브라우저(클라이언트)로 보내 이 데이터가 브라우저에 표현됩니다.

 

 

💡 더 찾아보면 좋을 키워드들

  1. 웹 서버 (Web Server)는 무엇일까요?
  2. 웹 서버 (Web Server)와 웹 어플리케이션 서버(WAS)는 어떤 차이점이 있을까요?
  3. HTTP Method에서 GetPost의 차이점은 무엇이 있을까요?
  4. HTTP와 HTTPS의 차이점은 무엇일까요? 

 

참고 자료 : https://teamsparta.notion.site/HTTP-6d40363a0b0e45acbc4d09a5d8c34b06

'Coding > 기타' 카테고리의 다른 글

WebServer vs Was  (0) 2023.01.13
ChatGPT !! 엄청나다 !!  (0) 2023.01.10
기술매니저님 추천 사이트 ( Spring 관련 )  (0) 2022.12.02
RESTful API 설계 가이드  (0) 2022.12.01
Error : Address already in use 오류 해결하기  (0) 2022.11.04

+ Recent posts