우리가 흔히 생각하는 서버/클라이언트/웹의 동작 개념은 무었일까요?
"Web server"는 하드웨어, 소프트웨어 혹은 두 개가 같이 동작하는 것을 의미할 수 있습니다.
- 하드웨어 측면에서, web server는 web server의 소프트웨어와 website의 컴포넌트 파일들을 저장하는 컴퓨터입니다. (컴포넌트 파일에는 HTML 문서, images, CSS stylesheets, 그리고 JavaScript files가 있습니다.) Web server는 인터넷에 연결되어 웹에 연결된 다른 기기들이 웹 서버의 데이터(컴포넌트 파일들)를 주고받을 수 있도록 합니다.
- 소프트웨어 측면에서, web server는 기본적으로 웹 사용자가 어떻게 호스트 파일들에 접근하는지를 관리합니다. 이 문서에서 web server는 HTTP서버로 국한합니다. HTTP 서버는 URL(Web addresses)과 HTTP(당신의 브라우저가 웹 페이지를 보여주기 위해 사용하는 프로토콜)의 소프트웨어 일부입니다.
가장 기본적인 단계에서, 브라우저가 웹 서버에서 불려진 파일을 필요로 할때, 브라우저는 HTTP를 통해 파일을 요청합니다. 요청이 올바른 웹 서버(하드웨어)에 도달하였을 때, HTTP 서버(software)는 요청된 문서를 HTTP를 이용해 보내줍니다.
웹 사이트를 공개하기 위해서는, 당신은 정적 혹은 동적 웹 서버가 필요합니다.
정적 웹 서버 혹은 스택은 HTTP 서버 (소프트웨어)가 있는 컴퓨터(하드웨어)로 구성되어 있습니다. 서버가 그 불려진 파일을 당신의 브라우저에게 전송하기 때문에, 저희는 그것을 "정적"이라고 부릅니다.
동적 웹 서버는 정적 웹 서버와 추가적인 소프트웨어(대부분 일반적인 애플리케이션 서버와 데이터베이스)로 구성되어 있습니다. 애플리케이션 서버가 HTTP 서버를 통해 당신의 브라우저에게 불려진 파일들을 전송하기 전에, 애플리케이션 서버가 업데이트하기 때문에 우리는 이것을 동적이라고 부릅니다.
예를 들어, 당신이 브라우저에서 보는 최종 웹페이지들을 생성하기 위해, 애플리케이션 서버는 아마 데이터베이스로 온 컨텐츠들로 이루어진 HTML 템플릿을 채울지 모릅니다. MDN 혹은 Wikipedia와 같은 사이트들은 수 천개의 웹페이지들을 가지고 있지만, 그것들은 실제의 HTML 문서가 아니라 오직 약간의 HTML 템플릿과 엄청 큰 데이터베이스로 되어있습니다. 이 구성은 내용들을 전달하고 관리하기 쉽고 빠르게 만들어 줍니다.
출처: developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_web_server
내생각 --> 위 글을 요약해보면 서버에는 두가지 방면이 있다. 하드웨어측면에서 바라본 서버와 소프트웨어 측면에서 바라본 서버가 그것이다. 하드웨어라 하면 간단히 생각해서 컴퓨터라고 생각하면 쉽다. 이때 이 컴퓨터는 webserver를 운영하게 해주는 소프트웨어와 website의 컴포넌트들 그러니깐 HTML 문서, images, CSS stylesheets, 그리고 JavaScript files를 의미한다. 소프트웨어 측면에서 바라보자면 웹 서버는 어떻게 기본적으로 웹사용자가 호스트파일들에 접근하는지 관리한다. 즉 다시말해서, 데이터베이스가 있다면 이 데이터베이스를 이요해서 웹 사용자가 데이터를 이용하게 하는지 관리한다는 의미이다.
웹에 연결된 컴퓨터는클라이언트와서버라고 합니다. 그들이 어떻게 상호작용하는가에 대한 간소화된 다이어그램은 다음과 같습니다:
- 클라이언트는 일반적인 웹 사용자의 인터넷이 연결된 장치들 (예를 들어, 여러분의 컴퓨터는 WI-FI에 연결되어 있고, 또는 여러분의 폰은 모바일 네트워크에 연결되어 있습니다) 과 이런 장치들에서 이용가능한 웹에 접근하는 소프트웨어 (일반적으로 파이어폭스 또는 크롬 과 같은 웹 브라우저) 입니다.
- 서버는 웹페이지, 사이트, 또는 앱을 저장하는 컴퓨터입니다. 클라이언트의 장비가 웹페이지에 접근하길 원할 때, 서버로부터 클라이언트의 장치로 사용자의 웹 브라우저에서 보여지기 위한 웹페이지의 사본이 다운로드 됩니다.
출처: developer.mozilla.org/ko/docs/Learn/Getting_started_with_the_web/How_the_Web_works
내생각 --> 클라이언트는 즉 웹에 접근을 가능하게 해주는 소프트웨어 라고 생각하면 된다. 즉 내가 지금 사용하고 있는 크롬이 대표적인 경우이다. 클라이언트와 서버의 동작방식이 중요하다. 클라이언트가 서버에게 requests 를 하면 서버는 클라이언트에게 response 한다.
'웹 프로그래밍(풀스택-->python)' 카테고리의 다른 글
6. 폰트, 주석, 파일분리 (0) | 2021.03.29 |
---|---|
5. 자주 쓰이는 CSS 연습하기 (0) | 2021.03.29 |
4. CSS 기초 (0) | 2021.03.29 |
3. 로그인 HTML 만들어보기 (0) | 2021.03.29 |
2. HTML 과 CSS 개념 (0) | 2021.03.29 |