웹의 동작

movie·2022년 3월 20일
2

웹의 동작 🖥

웹 서버와 웹 클라이언트

client - request / 브라우저

server - response / 콘텐츠 자원을 관리하고 처리하는 컴퓨터

웹에서 다양한 콘텐츠를 불특정 다수의 사람에게 공개하려면 정리하고 관리하는 것이 매우 중요하기 때문에, 웹 클라이언트와 웹 서버를 분리하여 웹 서버(하나의 컴퓨터)에 정보를 모아둔다.

client

  • server에게 요청
  • 전달 받은 데이터 조각을 완전한 웹 사이트로 조립한다.

server

  • 네트워크상에 공개하는 하이퍼텍스트를 쌓아 저장
  • client가 요청하면 HTML파일을 건네준다.
  • 컨텐츠 자원을 관리하고 처리한다.


무엇을 사기 위해 상점을 가는 상황을 비유해보자.

  1. client는 웹 사이트를 접속하기 위해 DNS를 통해 서버의 진짜 주소를 찾는다. / 상점의 주소를 찾는다.
  2. client(브라우저)는 웹 사이트의 사본(HTML 문서)를 보내달라고 server에게 HTTP메시지를 보낸다. / 상점에서 상품을 주문한다.
  3. server가 요청을 승인하면 200 OK 메시지를 보내고 파일을 client에게 전송한다. / 상점이 원하는 물품을 전달한다.



컨텐츠를 찾을 수 있는 방법

client가 원하는 컨텐츠만을 찾으려면 URL이 필요하다.
웹 사이트의 특정 페이지에 접근하기 위해 주소창에 입력하는 문자열이 URL이다.

URL : 인터넷 상의 콘텐츠를 고유하게 지정하기 위한 구조

URL은 스킴, 호스트명, 경로명으로 이루어져 있다.

  • 스킴 : 리소스를 획득하기 위한 방법
  • 호스트명 : 리소스를 가지고 있는 컴퓨터의 이름
  • 경로명 : 호스트에서의 리소스 위치


컨텐츠를 주고 받는 방식

우리는 URL을 사용하여 특정 데이터를 요구할 수 있다.
여기서 특정 데이터를 어떻게 주고 받을 지에 대한 약속이 필요한데,
이를 통신 프로토콜이라고 한다.

웹에서는 HTML 전송을 위해 HTTP가 널리 사용되고 있다.

HTTP : HTML 전송에 사용되는 프로토콜



컨텐츠를 요청 | HTTP request

시작줄

GET[1] /doc/test.html[2] HTTP/1.1[3]

  1. HTTP 메서드 : 서버가 수행해야 할 동작
  2. URL : 원하는 정보
  3. HTTP 버전

요청 헤더

Host: www.test.com

요청을 보낸 곳의 호스트명

Accept: image/gif

웹 클라이언트가 받을 수 있는 데이터의 종류 (Content-Type 형식)

User-Agent: Mozilla/4.0

이용 중인 웹 브라우저의 종류와 버전

origin

요청이 어느 주소에서 시작되었는지



요청에 대한 응답 | HTTP response

상태라인

HTTP/1.1[1] 200[2] OK[3]

  1. HTTP 버전
  2. 상태 코드
  3. 응답 구문

응답 헤더

응답에 대한 부가적인 정보

응답 본문

요청한 데이터 (HTML, JPEG ..)



RESTful API

Mashup : 웹 서비스를 결합해 새로운 부가가치를 창출하는 방법 (요기서 API를 사용)
REST(Representational State Transfer) : HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것

REST 원칙

  • API가 웹 서버를 통해 제공
  • 경로에 메서드를 보내 서비스를 얻음 (GET/users/[사용자 id])
  • API 요청이 성공했는 지에 대해 status code로 알려줌
  • URL은 리소스의 위치를 나타냄
  • 서버에서 JSON, XML과 같은 데이터 등이 반환 (주로 JSON)
  • 클라이언트 쪽에서 관리해야 할 상태가 존재하지 않고, 매번 요청을 독립적으로 발행



참고

profile
영화보관소는 영화관 😎

0개의 댓글