사용자와 웹사이트 간의 상호작용
1. 클라이언트 요청
* 사용자가 웹 브라우저를 통해 웹사이트에 접속 하거나 , 링크를 클릭하는 등의 동작으로 서버에 요청을 보냄
* 요청(Request)는 HTTP 요청 메서드(GET,POSt,PUT,DELETE 등) 와 함께 요청한 리소스의 경로와 다양한 정보를(헤더)에 포함한다.
2. 서버의 처리
* 서버는 받은 요청을 처리하기 위해 요청된 리소스(HTML , 페이지 ,이미지 ,데이터 등) 을 찾아내어 시작
* 필요한 데이터를 데이터베이스에서 가져오거나 다른 서버에 요청 할 수도 있다.
3. 리소스 전달
* 서버는 요청된 리소스를 HTTP 응답 메시지로 포장하여 클라이언트에게 전송
* 이 응답은 헤더와 바디로 구성되어있으며, 헤더에는 응답 상테코드(200 OK, 404 NOT FOUND, 500 ERROR ) 등와 함께 Https Status 코드로 다양한 정보가 담겨 있다.
4. 클라이언트의 렌더링
* 클라이언트 는 받은 응답 메세지를 분석하고 렌더링 하여 사용자에게 보여준다.
* HTML , CSS , JS 등 을 사용하여 페이지 구조, 스타일 , 인터랙션을 구현
5. 추가 리소스 요청
* 웹페이지에는 이미지 , 스크립트, 스타일시트 등 다양한 리소스가 포함 될 수 있다.
* 브라우저는 이러한 리소스를 필요할때마다 서버에 추가 요청하여 받아온다.
6. 상호작용 및 데이터 송수신
* 웹페이지 에서 사용자의 상호작용 에 따라 클라이언트는 서버로 데이터를 보내거나 추가 정보를 요청 할 수 있다.
* 이러한 데이터 송수신은 AJAX 나 WebSocket 과 같은 기술을 사용하여 비동기적으로 이루어 질 수 있다.
7. 서버의 처리 및 업데이트
* 서버는 클라이언트의 요청에 따라 데이터를 처리하고 업데이트 한다.
* 예를 들어, 사용자가 폼을 제출 하면 서버는 데이터를 처리하고 데이터베이스를 업데이트 할 수 있다.
8. 클라이언트의 결과 표시
* 서버로부터 받은 업데이트 된 데이터나 결과를 클라이언트는 다시 렌더링 하여 사용자에게 보여 준다
* 이러한 과정을 통해 사용자와 웹사이트 간의 상호 작용이 이루어 진다.
요약
웹사이트 통신의 과정 이미지
- 사용자는 웹브라우저를 통해 URL을 입력한다
- 입력된 URL은 DNS 서버에 검색한다
- DNS 서버에서 도메인 이름에 해당되는 IP 주소를 찾아 사용자가 입력한 URL 과 정보를 전달한다.
- 웹페이지 URL 리소스와 전달받은 IP 주소를 이용해 HTTP 요청을 생성한다.
- 요청은 TCP 를 통해 서버로 전송
- 서버는 클라이언트 의 Request 와 Response 응답을 전송 한다.