MDN / what is a web server?

lovely·2023년 1월 24일
0

Docs + 공부하기🖥

목록 보기
1/6
post-custom-banner

what is a seb server?

what is a web server?

이 글에서는 웹서버가 무엇인지, 어떻게 동작하는지 그리고 왜 중요한지를 설명합니다.

선질문 : 당신은 인터넷이 어떻게 동작하는지 이미 알고 있습니다. 그리고 웹페이지와 웹사이트와 웹서버와 검색엔진의 차이점을 이해하고 있습니다.
주제 : 웹서버가 무엇인지 배우게 될 것입니다. 그리고 어떻게 동작하는지에 대해 일반적인 이해를 얻게 됩니다.

summary

웹 서버라는 용어는 하드웨어 또는 소프트웨어 또는 이 둘 모두가 함께 동작하는 것에 대해 정의 할수 있습니다.
1. 하드웨어 사이드

  • 웹 서버는 웹서버의 소프트웨어와 웹사이트의 컴포넌트 파일을 저장해놓은 컴퓨터 입니다.
    (예를들어 HTML doc, img, css 스타일시트, javascript file)
  • 웹서버는 인터넷과 연결하고 웹과 연결되어있는 다른 장비와의 물질적인 데이터 상호교환에 도움을 줍니다.
  1. 소프트웨어 사이드
  • 웹 서버는 웹 유저가 호스팅된 파일에 접근 해 콘트롤 할 수 있는 몇몇의 부분을 포함합니다.
  • 최소한으로 HTTP 서버를 가리킵니다.
  • HTTP서버는 URLs와 HTTP를 이해하는 소프트웨어 입니다.
  • HTTP서버는 웹사이트가 저장하고있는 도메인 이름을 통해서 접근할 수 있습니다. 그리고 호스팅된 웹사이트들이 포함하고있는 유저의 디바이스로 전달합니다.

대부분의 기본 레벨에선 브라우저는 (브라우저가 웹 서버에 호스팅된 파일을 필요로 할때마다) 브라우저는 HTTP로 된 파일을 요구합니다. 올바른 웹 서버에 요청이 도착할 때 HTTP서버는 요청을 받고, 요청에 맞는 doc을 찾고 HTTP를 통해 브라우저로 다시 되돌려 보냅니다. (서버가 요청된 doc을 찾지 못한다면, 404응답을 대신 반환합니다.)

공공의 웹사이트에선 당신은 정적인 또는 다이나믹한 웹 서버 둘 다 필요로 합니다.

A static web server

  • stack
  • 정적인 웹 서버는 하나의 HTTP 서버(소프트웨어)와 하나의 컴퓨터(하드웨어)로 이루어져 있습니다.
  • 서버는 호스팅된 파일을 그대로 브라우저로 보내기 때문에 이것을 '정적인(static)'이라고 부릅니다.

A dynamic web server

  • 정적인 웹서버와 여분의 소프트 웨어가 더해졌습니다.
  • 대부분은 보통 어플리케이션 서버와 데이터베이스입니다.
  • 어플리케이션 서버가 브라우저에 HTTP서버를 보내기 전에 호스팅된 파일을 업데이트 하기 때문에 이것을 '동적인(dynamic)'이라고 부릅니다.

예를들어 브라우저에서 볼 수 있는 마지막 웹페이지를 제공하기 위해 어플리케이션 서버는 데이터베이스로 이루어진 하나의 HTML템플릿으로 채울 것입니다. MDN이나 위키피디아같은 사이트들은 수천의 페이지를 가지고 있습니다. 일반적으로 이런 종류의 사이트들은 수천의 정적인 HTML doc을 가지고 있는 것 보다 정말 몇가지의 HTML템플릿과 거대한 데이터베이스들로 이루어져 있습니다. 이 설정은 더 쉽게 유지하고 콘텐츠를 전달 할 수 있게 만들어졌습니다.

Deeper Dive

웹 페이지를 가져오기 위해선, 브라우저는 요청을 웹 서버로 보내야 합니다. 웹 페이지를 가져오려면 브라우저가 웹 서버에 요청을 보내며, 웹 서버는 자신의 저장 공간에서 요청된 파일을 검색합니다. 파일을 찾으면 서버는 파일을 읽고 필요에 따라 처리한 다음 브라우저로 보냅니다.

Hosting files

웹 서버는 웹사이트 파일을 저장하고 있습니다. 모든 HTML docs와 연관된 assets, 포함된 이미지, css 스타일시트, 자바스크립트, 폰트, 비디오들을 이야기합니다.

기술적으로 모든 종류의 파일을 자체 컴퓨터에 올릴 수 있습니다. 하지만 웹 서버에 파일을 저장해 놓는것이 더욱 편리합니다.

  • 전용 웹 서버는 일반적으로 더욱 유용합니다.
  • 가동시간과 시스템 문제를 제외하고 전용 웹 서버는 언제나 인터넷과 연결되어 있습니다.
    -전용 웹 서버는 항상 같은 IP주소를 가질 수 있습니다. 이것은 전용 IP 주소로 알려졌습니다.(모든 ISPs가 제공하는 고정된 IP가 아닙니다.)
  • 일반적으로 third party의 지원을 받습니다.

이런 모든 이유로 좋은 호스팅 제공법을 찾는것은 웹사이트를 만드는 중요한 부분입니다. 회사가 제공하는 다양한 서비스들을 검토해야 합니다. 당신이 필요로 하는 예산 안에서 하나를 고릅니다.


HTTP를 통한 통신

둘째, 웹 서버는 HTTP(Hypertext Transfer Protocol)에 대한 지원을 제공합니다. 이름에서 알 수 있듯이 HTTP는 두 컴퓨터 간에 하이퍼텍스트(연결된 웹 문서)를 전송하는 방법을 지정합니다.

프로토콜은 두 컴퓨터 간의 통신을 위한 규칙 집합입니다. HTTP는 텍스트 상태 비저장 프로토콜입니다.

텍스트
모든 명령은 일반 텍스트이며 사람이 읽을 수 있습니다.

상태 비저장
서버와 클라이언트 모두 이전 통신을 기억하지 못합니다. 예를 들어, HTTP에만 의존할 경우, 서버는 사용자가 입력한 비밀번호를 기억할 수 없거나 불완전한 트랜잭션에 대한 진행률을 기억할 수 없습니다. 그런 작업에는 응용 프로그램 서버가 필요합니다. (이러한 기술에 대해서는 다른 기사에서 다루겠습니다

HTTP는 클라이언트와 서버가 통신하는 방법에 대한 명확한 규칙을 제공합니다. HTTP 자체에 대해서는 나중에 기술 기사에서 다루겠습니다. 지금은 다음 사항에 주의하십시오:

일반적으로 클라이언트만 HTTP 요청을 작성하고 서버에만 요청합니다. 서버는 클라이언트의 HTTP 요청에 응답합니다. 서버는 또한 서버 푸시라는 메커니즘을 통해 요청되기 전에 클라이언트 캐시에 데이터를 채울 수 있습니다.
HTTP를 통해 파일을 요청할 때 클라이언트는 파일의 URL을 제공해야 합니다.
웹 서버는 최소한 오류 메시지로 모든 HTTP 요청에 응답해야 합니다.
웹 서버에서 HTTP 서버는 수신 요청을 처리하고 응답합니다.

요청을 수신하면 HTTP 서버는 요청된 URL이 기존 파일과 일치하는지 확인합니다.
이 경우, 웹 서버는 파일 내용을 브라우저로 다시 보냅니다. 그렇지 않은 경우, 서버는 요청에 대한 파일을 동적으로 생성해야 하는지 확인합니다(정적 내용 대 동적 내용 참조).
이러한 옵션 중 어느 것도 사용할 수 없는 경우, 웹 서버는 브라우저에 오류 메시지(가장 일반적으로 404 Not Found)를 반환합니다. 404 오류는 너무 흔해서 일부 웹 디자이너들은 404 오류 페이지를 설계하는 데 상당한 시간과 노력을 쏟는다. 이러한 오류 페이지의 예로 MDN 404 페이지가 있습니다
정적 컨텐츠와 동적 컨텐츠 비교
대략적으로 말하면, 서버는 정적 또는 동적 콘텐츠를 제공할 수 있습니다. 정적이라는 용어는 "있는 그대로 제공됨"을 의미한다는 것을 기억하십시오. 정적 웹 사이트는 가장 쉽게 설정할 수 있으므로 첫 번째 사이트를 정적 사이트로 만드는 것이 좋습니다.

동적이라는 용어는 서버가 콘텐츠를 처리하거나 데이터베이스에서 즉시 생성하는 것을 의미합니다. 이러한 접근 방식은 더 많은 유연성을 제공하지만 기술 스택이 더 복잡하기 때문에 웹 사이트를 구축하는 것이 훨씬 더 어렵습니다.

애플리케이션 서버 기술이 너무 많아서 특정한 것을 제안하기는 어렵다. 일부 응용 프로그램 서버는 블로그, Wiki 또는 전자 상거래와 같은 특정 웹 사이트 범주를 지원합니다. 다른 응용 프로그램 서버는 더 일반적입니다. 역동적인 웹 사이트를 구축하는 경우에는 시간을 내어 필요에 맞는 기술을 선택하십시오. 웹 서버 프로그래밍(그 자체로 흥미로운 영역)을 배우고 싶지 않다면, 자신만의 응용 프로그램 서버를 만들 필요가 없습니다. 그것은 단지 바퀴를 재창조하는 것이다.

profile
the best FE (will be..)
post-custom-banner

0개의 댓글