성-민 2023. 2. 4. 21:48

1. HTTP의 이해

1) HTTP(HyperText Transfer Protocol)

  - 데이터를 주고 받는 양식을 정의한 "통신 규약"

  - 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰인다.

      * 통신 규약 : 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속

  - 현재 이용되는 대부분의 웹 서버가 HTTP를 기반으로 데이터를 주고 받습니다. 또한, 모든 브라우저는

    HTTP 프로토콜을 기본으로 지원하기 때문에 매일 HTTP를 이용하고 있다.

 

 

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

  - HTTP에서는 언제나 Request, Response라는 개념이 존재합니다.

  - 서버와 브라우저의 관계로 가볍게 말해보면 아래와 같이 동작합니다.

    1. 브라우저는 서버에게 자신이 원하는 페이지가 있는지 확인하고,

        있다면 해당 페이지에 대한 데이터를 실어 응답(response)해줍니다.

    2. 서버는 브라우저가 원하는 페이지가 있는지 확인하고,

        있다면 해당 페이지에 대한 데이터를 실어 응답(Response)해줍니다.

    3. 브라우저는 서버에게 전달받은 데이터를 기반으로 브라우저에 그려줍니다.

  - 그리고 위와 같은 사례에서 "데이터"는 어떠한 데이터든 주고 받는게 가능합니다.

 

*개발자 도구(F12)

사용하는 브라우저 F12를 누르면 새로운 창이 뜬다.

 

Network 서버에서 받아온 데이터 목록

데이터     Headers

                            General 브라우저에서 서버로 보낸 Request 데이터

                            Requst Headers 브라우저에서 서버로 보낸 Requst 데이터

                            Response Headers 서버가 웹 페이지 데이터와 함께 보낸 추가 데이터

                Response 서버에서 브라우저로 반환해준 웹 페이지를 그려주기 위한 데이터

 

 

3) 추가 데이터와 데이터

HTTP

  - Method(호출/요청 방식)

            GET : 이름 그대로 어떤 리소스를 얻을 때 사용됩니다. 브라우저의 주소창에 URL을 입력하면

                        GET 메서드를 사용해서 서버에 요청을 보냅니다.

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

  - Header (추가 데이터, 메타 데이터)

            브라우저가 어떤 페이지를 원하는지

            요청 받은 페이지를 찾았는지

            요청 받은 데이터를 성공적으로 찾았는지

            어떤 형식으로 데이터를 보낼지

  - Payload(데이터.실제 데이터)

            서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있습니다.

            클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있습니다.

            그리고, "GET method를 제외하곤 모두 Payload를 보낼 수 있다."는게 HTTP에서의 약속

 

2. 웹 서버의 이해

1) 웹 서버

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

  - 오늘날 우리가 자주 사용하는 이메일이나 SNS 등 대부분의 서비스는 웹 서버를 통해 우리가 사용할 수 있게 됐다.

    웹 서버 점유율(1. Apache 2. Nginx 3..IIS     ....)

2) 웹 서버의 기본 동작 원리

  - 브라우저를 통해 HTTP request로 웹 사이트를 웹서버에 요청합니다. 이후 웹서버는 요청을 승인하고 HTTP response를 통해 웹사이트 데이터를 브라우저에 전송합니다. 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹 사이트를 브라우저에 그려내는 일을 합니다.

  - 기본적으로 브라우저가 웹서버에 요청을 할때는 항상 GET method로 요청하게 됩니다.

    HTTP request (데이터 요청)=> HTTP response (데이터 전송) => 브라우저 (데이터 구현)