<TIL> 22. 웹 동작 방식

YUJIN LEE·2023년 2월 25일
0

개발log

목록 보기
18/149

IP 주소 : 거대한 네트워크 망에서 컴퓨터를 식별하기 위한 위치 주소.
네트워크 상 데이터 송/수신은 이 주소를 기준으로 이루어짐

브라우저: 크롬, 사파리, 엣지와 같이 웹페이지, 이미지, 비디오 등 컨텐츠를 송/수신하고 표현해주는 소프트웨어

  **브라우저가 하는 일**
  컨텐츠를 송수신한다. 컨텐츠를 표현한다
  

데이터 송/수신은 0과 1의 아날로그 신호로 이루어짐.
브라우저는 우리의 메세지가 OSI 7계층을 거쳐 랜선을 통해 0과 1로 변경되어 흘러갈 수 있도록 우리를 도와주는 응용프로그램이자, 우리와 상호작용해서 요청을 보내는 응용프로그래밍 계층의 첫 출발점.

DNS(Domain Name Server)
도메인 이름을 입력해 웹 사이트로 갈 수 있었던 이유는,
우리의 요청을 받아줄 서버의 IP주소와 우리가 외우고 있는 도메인 이름을 중개해주는 전화번호부 같은 서버가 중간에 있었기 때문이다.

프로토콜
멀리 떨어져서 서로에 대한 정보가 없는 메세지의 송/수신자가 서로 필요한 요청과 응답을 할 수 있도록 미리 규약을 정해놓은 것.
웹 상에서는 HTTP라는 프로토콜을 통해 데이터를 송/수신하고있음

HTTP 이해

Http(HyperText Transfer Protocol)

  • 데이터를 주고 받는 양식을 정의한 "통신 규약" 중 하나
  • 매우 범용적인 양식을 가지고 있어 전세계에서 제일 널리 쓰이는 통신 규약
  • 통신 규약 - 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속을 의미

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

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

브라우저에서 HTTP가 동작하는 것을 직접 확인 방법
1. 개발자 도구와 네트워크 탭 열기
2. 네트워크 탭 맨 위의 페이지 데이터 클릭
3. Headers 탭 살펴보기
4. Response 탭 살펴보기

추가 데이터와 데이터의 차이점.

HTTP에는 크게 다음과 같은 구성 요소 존재
Method(호출/요청 방식)

  • GET : 이름 그대로 어떤 리소스를 얻을 때 사용. 브라우저의 주소창에 URL을 입력하면 GET 메서드를 사용해 서버에 요청을 보낸다.
  • POST: 웹서버에 데이터를 게시할 때 사용하는게 일반적. (ex. 회원가입, 게시글 작성, 댓글 작성)

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

  • 브라우저가 어떤 페이지를 원하는지
  • 요청 받은 페이지를 찾았는지
  • 요청 받은 데이터를 성공적으로 찾았는지
  • 어떤 형식으로 데이터를 보낼지

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

**Payload(데이터, 실제 데이터)

  • 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있다.
  • 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있다.
  • 그리고 "GET method를 제외하곤 모두 Payload를 보낼 수 있다"는게 HTTP에서의 약속.

웹서버의 이해

웹서버란?

  • 웹 서버는 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 일종의 컴퓨터.
  • 오늘날 우리가 자주 사용하는 이메일이나 SNS 등 대부분의 서비스는 웹 서버를 통해 우리가 사용할 수 있게 됨.

웹서버의 기본 동작 원리

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

quiz

  1. google.com에 접속하면 보여지는 화면에 대한 데이터는 어떻게 받아오는 걸까요?
    -> 브라우저가 서버에서 사이트 정보를 받아와 표현.
    사용자가 브라우저에 주소(URL)를 입력하면 해당 동작에 맞게 HTTP 데이터를 만들어 서버로 보내고 서버는 알맞은 응답 데이터를 브라우저(클라이언트)로 보내 이 데이터가 브라우저에 표현

Keyword

  1. 웹서버(web server)는 무엇일까?
  2. 웹서버(web server)와 웹 어플리케이션 서버(WAS)는 어떤 차이점이 있을까?
  3. HTTP Method에서 Get과 Post의 차이점은 무엇이 있을까?
  4. HTTP와 HTTPS의 차이점은 무엇일까?

API

application programming interface
다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙 정의
개발자는 다른 어플리케이션이 프로그래밍 방식으로 어플리케이션과 통신할 수 있도록 API를 표시하거나 생성.

인터페이스(interface)

서로 다른 두 개의 시스템 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면.
즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템.
컴퓨팅에서 컴퓨팅 시스템끼리 정보를 교환하는 공유 경계.

RESTful API?

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처. REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어짐
REST 기반 아키텍처를 사용해 대규모의 고성능 통신을 안정적으로 지원할 수 있다.
쉽게 구현 및 수정이 가능해 모든 API 시스템을 파악 후 여러 플랫폼에서 사용 가능
API 개발자는 여러 아키텍처를 사용해 api 설계 가능.
REST 아키텍처 스타일을 따르는 API를 REST API라고 함.
REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라 함.
RESTful API라는 용어는 일반적으로 RESTful 웹 API를 나타냄.

데이터베이스

데이터베이스가 존재하는 이유는 데이터를 효율적으로 성능 좋게 다루기 위해 존재.
저장 조회 수정 삭제 등을 더 빠르고 효율적으로 처리하기 위해 성능상의 이점을 얻기 위해 사용.
데이터를 사용, 활용하는 주체에 따라 더 효율적인 방법이 각각 다르다보니 다양한 형식의 데이터베이스 존재.

결론

서버 개발에서 가장 많이 하는 일은 새로운 정보와, 기존의 정보를 가지고 정해진 로직을 수행하는 일.

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글