본문 바로가기

개념정리/Web Hacking

3. Web Browser

 

저번 시간에는 Web에 대하여 공부하였다.

이번 시간은 Web Browser에 대하여 공부할 것이다.

 


1. Web Brower

웹 브라우저는 뛰어난 이용자 경험(UX)을 제공하는 소프트웨어 중 하나이다. 웹 브라우저는 서버와 HTTP 통신을 대신해주고 수신한 리소스를 시각화해준다. 이용자는 브라우저를 이용하여 쉽게 정보를 검색하고 동영상을 보고 파일을 내려받지만 내부에서 어떠한 연산이 일어나는지 알지 못한다. 

- 웹 브라우저 기본적인 동작

1) 웹 브라우저의 주소창에 입력된 주소를 해석(URL 해석)

2) URL에 해당하는 주소 탐색(DNS 요청)

3) HTTP를 통해 해당 주소에 요청

4) 해당 주소의 HTTP 응답 수신

5) 리소스 다운로드 및 웹 렌더링

웹 브라우저의 기본적인 동작

2. URL

URL(Uniform Resource Locator)은 웹에 있는 리소스의 위치를 표현한 문자열이다. 브라우저로 특정 웹 리소스에 접근할 때는 URL을 사용하여 이를 서버에게 요청한다. URL은 1) Scheme, 2) Authority(Userinfo, Host, Port), 3) Path, 4) Query, 5) Fragment 등으로 구성된다. 

ex) "https://example.com:8080/path?name=hello#fragment" 

1) Scheme : https://

웹 서버와 어떤 프로토콜로 통신할지 나타낸다.

2) Host : example.com

Authority의 일부이며 접속할 웹 서버의 주소에 대한 정보를 나타낸다.

3) Port : 8080

Authority의 일부이며 접속할 웹 서버의 포트에 대한 정보를 나타낸다.

4) Path : /path

접근할 웹 서버의 리소스 경로로 "/"로 구분된다.

5) Query : ?name=hello

웹 서버에 전달하는 파라미터이며 URL에서 "?" 뒤에 위치한다.

6) Fragment : #fragment

메인 리소스에 존재하는 서브 리소스를 접근할 때 이를 식별하기 위한 정보를 담고 있다. "#" 뒤에 위치한다.

 

3. Domain Name

URL 구성 요소 중 Host는 웹 브라우저가 접속할 웹 서버의 주소를 나타낸다. Host는 Domain Name이나 IP Address의 값을 가질 수 있다. IP Address는 네트워크 상에서 통신이 이루어질 때 장치를 식별하기 위해 사용되는 불규칙한 숫자로 이루어진 주소이다. 일반적으로 도메인 특성을 담은 Domain Name을 정의하여 IP Address 대신 사용한다.

Domain Name을 Host 값으로 이용할 때 브라우저는 DNS(Domain Name Server)에 Domain Name을 질의하고 DNS가 응답한 IP Address를 사용한다. 예를 들어, 웹 브라우저에서 "https://example.com"에 에 접속할 경우, DNS에 질의해 얻은 example.com의 IP Address와 통신한다.

 

4. Web Rendering

 서버로부터 받은 리소스를 이용자에게 시각화하는 행위이다. 서버의 응답을 받은 웹 브라우저는 리소스의 타입을 확인하고 적절한 방식으로 이용자에게 전달한다. 서버로 부터 HTML과 CSS를 받으면 브라우저는 HTML을 파싱하고 CSS를 적용하여 이용자에게 보여준다. 

웹 렌더링은 웹 렌더링 엔진에 의해 이뤄지는데, 브라우저 별로 서로 다른 엔진을 사용한다. 사파리(웹킷), 크롬(블링크), 파이어폭스(개코) 을 엔진으로 사용한다.

 


 

이번 시간에는 Web Browser에 대하여 공부하였다.

다음 시간에는 본격적으로 웹 해킹으로 들어간다.

Cookie와 Session에 대하여 공부할 것이다.

 

'개념정리 > Web Hacking' 카테고리의 다른 글

[Web Hacking] Cross Site Scripting : XSS  (0) 2022.08.11
4. Cookie & Session  (0) 2022.08.02
2. Web  (0) 2022.08.01
1. HTTP/HTTPS  (0) 2022.08.01