1. 웹 브라우저란?
- 인터넷 브라우저라고도 불리며, 웹 서버로부터 정보를 요청하고 받아 사용자에게 보여주는 소프트웨어입니다.
- 우리가 일반적으로 사이트에 접속하였을때, HTML, CSS, JavaScript 파일을 전달받아 이를 해석하고 우리의 눈으로 볼 수 있게 됩니다.
- 이 과정에서 웹 브라우저는 정적인(static)파일과 동적인(Dynamic)정보를 처리하게됩니다.
- 브라우저의 통신 방식
- 사용자가 웹 브라우저의 주소창에 URL을 입력
- 웹 브라우저는 입력받은 URL을 DNS 서버로 전달하여 해당 IP 주소를 찾아줍니다.
- DNS 서버는 도메인 이름을 IP 주소로 변환합니다.
- 웹 브라우저는 해당 IP 주소로 HTTP 요청
- IP 주소에 연결된 웹 서버는 요청(Request)를 받아 처리
- 웹 서버는 처리 결과를 HTTP Response로 브라우저에게 전달
- 웹 브라우저는 받은 HTTP Response를 바탕으로 사용자에게 표시해줍니다.
2. HTTP의 이해
- HTTP란?
- 데이터를 주고 받는 양식을 정의한 통신 규약 중 하나가 HTTP입니다. (통신 규약: Protocol)
- 여기서 말하는 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속을 의미합니다.
- 즉, HTTP라는 통신 규약을 이용하여 서버나 클라이언트(브라우저)끼리 의사 소통을 할 수 있습니다.
- HTTPS란?
- HTTP를 기반으로 데이터 통신의 안정성을 높이기 위해 암호화 기능이 포함된 통신 프로토콜 입니다.
- HTTPS를 자세히 살펴본다면, 암호화 기법, 인증서 제공 기관 등 다양한 개념이 필요합니다.
- 여기서 알고 있어야할 중요한 포인트!!!!
- 우리가 말을 통해 의사 표현을 할 수 있듯이 모든 컴퓨터는 네트워크를 통해 의사 표현을 할 수 있다.
- 현실 세계에서 말은 의사 표현의 수단이며, 언어는 의사 표현의 방법입니다.
- 디지털 세상에서는 네트워크가 의사 표현의 수단이고, 통신 규약(ex HTTP)이 의사 표현의 방법입니다.
- HTTP는 데이터를 어떻게 주고 받을까?
- HTTP에서는 언제나 요청(Request)와 응답(Response)라는 개념이 존재합니다.
- 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요청(Request)합니다.
- 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 반환(Response)해줍니다. 원하는 페이지가 없다면 없는 페이지에 대한 데이터를 반환(Response)합니다.
(일반적인 웹 서버 기준) - 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줍니다.
- HTTP에서는 언제나 요청(Request)와 응답(Response)라는 개념이 존재합니다.
- 추가 데이터? 데이터?
- Headers 탭에서 추가 데이터라고 많이 말했었고, Response 탭에서는 그냥 데이터라고 말했습니다.
- HTTP의 구성요소 크게 3가지
- Method 설명
- GET : 이름 그대로 어떤 리소스를 얻을 때 사용됩니다.
그리고 브라우저는 기본적으로 웹 서핑을 한다고 가정하면 모든 요청은 GET메서드를 사용해서 서버에 요청을 보냅니다. - POST : 웹 서버에 데이터를 개시할 때 사용하는게 일반적입니다.
(ex 회원가입, 게시글 작성, 댓글 작성)
- GET : 이름 그대로 어떤 리소스를 얻을 때 사용됩니다.
- Header 설명 (추가 데이터, 메타 데이터)
- 브라우저가 어떤 페이지를 원하는지
- 요청 받은 페이지를 찾았는지
- 성공적으로 찾았는지
- 아주 다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받습니다.
- Payload 설명 (데이터, 실질적인 데이터)
- 서버가 응답을 보낼 때에는 항상 Payload를 보낼 수 있습니다.
- 클라이언트(브라우저)가 요청을 할 때에도 Payload를 보낼 수 있습니다.
- 그리고 GET method를 제외하곤 모두 Payload를 보낼 수 있다는게 HTTP에서의 약속 입니다.
- 추가적으로 DELETE method에서 Payload를 보낼수있지만, 보통 많은 경우에 Payload를 보내지 않고 있습니다.
- Payload 같은 경우에는 우리가 회원가입을 한다고 하면 구글이라는 서버에다가 회원가입이라는 요청을 수행하기 위해서는 이 요청을 수행하기 위해서는 구글이라는 서버는 해당하는 처리결과에 대해서 단순하게 Text파일이나 자바스크립트 파일 뿐만 아니라 Payload라는 방식으로 전달을 할 수 있는데 이 Payload같은 방법같은 경우는 Json 형태와 같은 여러가지 데이터 타입을 통해 전달한다고 보면 됩니다.
- Method 설명
3. 웹 서버의 이해
- 웹 서버란?
- 웹 서버는 HTTP를 이용하여 인터넷 상에서 클라이언트의 요청을 처리하고 응답해주는 컴퓨터 또는 프로그램
- 웹 서버는 클라이언트의 HTTP 요청을 받아 정적인 콘텐츠를 제공
- 필요한 경우, 클라이언트의 요청을 웹 어플리케이션 서버(WAS)로 전달하여 처리
- 대표적인 쉡 서버로는 Apache, Nginx 등
- 웹 어플리케이션 서버란?
- 웹 어플리케이션 서버는 웹 서버와 협력하여 동적인 컨텐츠 제공
- 주로 데이터베이스를 조회하거나, 복잡한 계산과 같은 비즈니스 로직을 처리
- 웹 어플리케이션 서버는 웹 서버와 협력하여 동적인 컨텐츠 제공
- 웹 서버와 브라우저 간의 통신 방식 정리하기
- 사용자는 브라우저를 통해 HTTP request로 웹사이트를 웹 서버에 요청을 보냅니다.
- 웹 서버는 이 요청을 처리한 후 HTTP response를 통해 해당 웹사이트 데이터를 브라우저에 전송합니다.
- 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 합니다.
- 기본적으로 브라우저가 웹 서버에 요청을 할 때는 주로 GET Method로 요청하게 됩니다.
- 그러나 POST, PUT, DELETE 와 같은 다른 HTTP 요청 메서드들도 존재하며, 이들은 서버에 다른 타입의 요청을 보낼 떄 사용됩니다.
'TIL' 카테고리의 다른 글
AWS 배포하는법 (1) | 2024.09.04 |
---|---|
SKT 브로드밴드 Window 유저의 AWS EC2 Instance 생성 후 ssh 접속 기본 포트 22 막힘 문제 해결 방법 (1) | 2024.09.03 |
OSI 7계층이란? (0) | 2024.08.29 |
서버와 클라이언트 란? 웹 어플리케이션 서버와 게임 서버의 공통점과 차이점은 무엇인가? (0) | 2024.08.26 |
깊은 복사 vs 얕은 복사 JavaScript (0) | 2024.08.13 |