브라우저의 주요 기능은 사용자가 자원을 서버에 요청하고 요청한 자원을 브라우저에 표시하는 것이다.
Q. 브라우저에 주소 입력창에 www.naver.com을 을 입력하면 무슨일이 일어나는가?
보통 웹 브라우저와 웹 서버는 다른 컴퓨터에 위치한다.
브라우저 주소창에 URL을 입력하면 웹 서버에게 해당 웹 페이지를 달라고 요청한다.
웹 브라우저가 웹 서버에 요청하려면 연결해야하는데 이 떄 필요한 것이 IP주소다.
그래서 도메인 네임을 IP주소로 변환할 필요가 있는데 이떄 사용하는 것이 DNS이다.
먼저 TCP 연결이 이루어지고 DNS로부터 받은 URL 정보와 IP주소를 가지고 HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성하고, 이렇게 생성된 HTTP 요청 메세지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP주소의 컴퓨터로 전송된다.
이렇게 도착한 HTTP 요청 메세지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환되어 웹 페이지 URL 정보에 해당하는 데이터를 검색한다.
검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메세지를 생성하고 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전송된다.
도착한 HTTP 응답 메세지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환되어 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 된다.
브라우저의 기본 구조
파싱은 HTML 코드를 토큰(token)으로 분해하고, 이것으로 이루어진 파스 트리(parse tree)를 생성하는 과정
* 토큰이란 ? 토큰은 구문적으로 의미를 갖는 최소의 단위이며 우리가 작성하는 프로그램은 모두 이러한 토큰으로 이루어진다.
ex) JAVA에서 보면
public static void main(String [] args{ ... }
에서 토큰은 public, static, void main, (, String, [, ], args, ), { ... 등이며 이러한 토큰을 제외한 공백문자(스페이스, 탭문자, 개행문자 등)는 문자열 내에서 사용되는 경우가 아닌 이상은 모두 아무런 의미를 가지지 않는다.