[혼공] 웹 브라우저

layl__a·2023년 4월 6일
0

DreamHack - 웹 해킹

웹브라우저란?


웹 브라우저(Web Browser)는 사용자가 웹 페이지를 볼 수 있도록 이용자 친화적인 인터페이스를 제공하면서 다양한 기능을 제공하는 소프트웨어다. 웹 브라우저는 사용자에게 웹 사이트 주소를 전달받아 해당 웹 사이트의 서버로부터 데이터를 응답받아 사용자에게 시각화해준다.

사용자는 웹 브라우저를 사용하면서 어떠한 동작이 내부에서 일어나고 있는지 알지 못한다. 사용자가 주소창에 인터넷 주소를 입력을 했을 때 웹 브라우저가 웹 페이지를 보여주는 과정은 크게 세 가지 단계로 나눌 수 있다.
1. DNS 조회

  • 주소창에 입력된 주소를 해석하고 (URL 분석) DNS(Domain Name System) 서버에게 주소에 해당하는 주소를 IP주소로 변환해 달라는 요청을 보낸다. DNS 서버는 이 요청에 대해 해당 도메인 이름의 IP 주소를 찾아서 웹 브라우저에게 반환해준다.
  1. 서버 연결 및 데이터 전송
  • 웹 브라우저가 위의 과정으로 알아낸 IP주소에 있는 서버와 연결을 맺은 후, 웹 브라우저는 HTTP(HyperText Transfer Protocol) 요청을 이용하여 서버로부터 웹 페이지에 필요한 데이터를 요청한다. 서버는 이 요청에 HTML, CSS, JavaScript 등의 데이터를 반환해 준다.
  1. 웹 페이지 렌더링
  • 웹 브라우저는 서버로부터 받은 데이터를 이용하여 웹 페이지를 렌더링한다. 이 과정에서 HTML, CSS, JavaScript 등의 웹 기술을 해석하고, 사용자에게 보여줄 웹 페이지를 구성한다. 웹 페이지가 완성되면, 사용자가 해당 웹 페이지와 상호작용할 수 있게 된다.

URL


URL 은 Uniform Resource Locator의 약자로, 웹에 있는 리소스의 위치를 표현하는 문자열이다. 브라우저로 특정 웹 리소스에 접근할 때 URL을 이용해 서버에게 요청한다.

URL의 구성은 Scheme, Authority(Userinfo, Host, Port), Path, Query, Fragment 등으로 구성된다.

구성역할
Scheme웹 서버와 어떤 프로토콜로 통신할지 나타낸다.
Host NameAuthority의 일부로, 자원이 위치한 서버의 도메인 이름 또는 IP 주소를 나타낸다.
Port NumberAuthority의 일부로, 자원에 접근할 때 사요하는 포트 번호를 나타낸다.
Path접근할 웹 서버의 리소스 경로로 '/'로 구분된다.
Query String웹 서버에 전달하는 파라미터이며, 자원에 대한 추가적인 정보를 제공하는 문자열이다.
Fragment메인 리소스에 존재하는 서브 리소스를 접근할 때 이를 식별하기 위한 정보를 담고 있다.

Domain Name


웹 브라우저가 접속할 웹 서버의 주소를 Domain Name이라하고, URL 구성 요소 중 Host가 된다. 이용자는 복잡한 IP Address의 형태가 아닌 도메인의 특성을 담은 주소를 입력하여 IP대신 사용한다.

Domain Name을 입력하면, 브라우저는 Domain Name Server(DNS)에 전달하여 DNS가 찾은 IP Address를 사용한다.

Linux에서 Domain Name에 대한 정보를 nslookup 명령어를 사용해 확인할 수 있다.

$ nslooup example.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non--authoritative answer:
Name: example.com
Address: 93.184.216.34

레퍼런스

https://learn.dreamhack.io/171![](https://velog.velcdn.com/images/layl__a/post/740181ba-4977-4e80-b17e-8a3e5a5ea612/image.png)

0개의 댓글