# 웹 브라우저

## 의미와 역할

* web client 프로그램
* 평소에 사용자 입장에서 간단하게 사용했지만 알고보면 매우 복잡함
* URL입력, 클릭 몇번으로 서버에 요청을 보낼 수 있게 해주고, 응답을 받아서 사용자가 볼 수 있는 화면으로 띄워줌
* edge, chrome, explore, firefox, whale 등이 이에 해당됨

## 브라우저가 하는 일(중에 우리가 알고 있는 매우 일부)

* URL입력과 클릭 한번으로도 요청 메시지를 만들어서 서버에 보내줌
* 처음 HTML파일을 받으면, 그 안에서 또 필요한 리소스를 알아서 다시 요청해서 받아옴(css, image, js 등)
* 받아온 리소스를 사용자가 볼 수 있는 화면으로 보여줌
* 다운로드 받을 때, 응답 메시지와 그 안의 헤더를 분석해서 알맞은 파일유형으로 만들어서 저장해줌
* 응답의 지연이 있을 때, 우리가 모르게 요청을 또 보내주기도 함
* 300번대(redirection) 응답을 받았을 때, redirection 해야되는 URL로 알아서 요청을 보내줌
* URL에 IP address가 아니라 Domain name을 입력받았다면, DNS 서버에 해당 domain에 해당하는 IP주소를 요청하고 응답 받아서, 해당 IP의 서버에 요청을 보냄

## 웹브라우저에 대해 자세히 알고 싶다면?

참고 : [네이버 D2](https://d2.naver.com/helloworld/59361)
