안녕하세요. 성조입니다.
이전 면접에서 웹 브라우저 요청/응답 원리에 대해서 답변하는 것이 시원하지 못해서 정리해 보려고 작성하게 됐습니다.
본인이 동작원리 학습 후 작성된 내용으로 부족한 부분이 있다면 언제든지 댓글 달아주시면 감사드리겠습니다.
혹여나 잘못된 정보가 있다면 언제든지 댓글 남겨주시면 감사드리겠습니다.
결론 : 이미지 참조 또는 설명 참조.
시각적으로 학습하면 조금 더 이해가 쉬울 것 같아서 위와 같이 이미지로 표현했지만 동작 원리는 생각보다 심플하다.
1. 이미지를 정리하면 다음과 같이 정리할 수 있다.
1. 웹 페이지를 찾아서 사용자가 값을 입력한다.
2. URL에 맞게 값을 처리한다.
3. DNS 서버에 도메인 이름을 IP 주소로 해석을 요청한다.
4. 도메인 이름에 맞는 IP 주소를 응답받는다.
5. IP 주소에 맞게 HTTP 통신 또는 HTTPS 통신을 진행한다.
6. 인터넷 통신으로 서버 컴퓨터에 연락한다.
7. 서버 컴퓨터의 IP 주소에 맞게 HTTP 또는 HTTPS로 데이터를 요청한다.
8. 서버에 저장된 페이지 URL의 값을 요청한다.
9. 페이지 데이터에 대해서 응답 값을 반환한다.
10. HTTP 또는 HTTPS 응답을 진행한다.
11. 요청을 보낸 PC에 HTTP 또는 HTTPS의 값을 응답받는다.
12. 요청 상태 또는 페이지의 데이터 값을 응답받는다.
13. 사용자(요청자)가 값을 확인할 수 있도록 브라우저에 값을 출력한다.
2. 동작 정리
1. URL 입력 : 사용자가 웹 브라우저의 주소 표시 줄에 URL(Uniform Resource Locator)을 입력하거나, 웹 페이지의 하이퍼링크 등을 클릭한다.
2. 도메인 이름 해석 : 브라우저는 입력한 URL의 도메인 이름을 IP 주소로 변환한다. DNS(Domain Name System) 서버를 통해서 이뤄지며, DNS 서버는 도메인 이름과 해당 IP 주소에 매핑한 값들을 가지고 있다.
3. TCP 연결 설정 : 브라우저는 웹 서버와의 통신을 위해 TCP(Transmission Control Protocol) 연결을 설정한다. 이 과정에서 "TCP 3-way handshake"라는 과정을 거쳐서 연결된다. 연결이 지속되고 있는 상태.
4. 요청 메서드 (GET, POST, PUT, DELETE 등) : 요청 URL에는 HTTP 헤더 (User-Agent, Accept, Host 등), 응답 (POST, PUT 요청 시 사용) 웹 서버는 요청을 처리한 후 HTTP 응답을 브라우저로 반환한다.
HTTP 응답은 상태 코드(200, 404, 500 등등 존재한다.), HTTP 헤더 Content-Type, Content-Length 등), 응답 본문에는 HTML, CSS, JavaScript, 이미지 등등이 존재하며, 브라우저 렌더링 요청을 진행한다. 요청 렌더링의 경우 다음 포스팅에서 다뤄보려 한다.
5. TCP 연결 종료 : 활용이 끝난 TCP 값들을 종료한다.
짧은 글 읽어주셔서 감사드립니다.
부족한 부분이나, 오타가 있다면 언제든지 댓글 달아주시면 감사드립니다.
다음 포스팅 때 뵙겠습니다.
아래의 포스팅은 이어서 보면 좋은 포스팅입니다.
2023.04.03 - [Network] - [Network]브라우저 렌더링 원리
[Network]브라우저 렌더링 원리
okeybox.tistory.com
Http, DNS, TCP/IP 이미지 등은 캔바를 pro 구독 이용하고 있어서 가져왔습니다.
'Network' 카테고리의 다른 글
[Network] URI, URL, URN이란? (a little deep dive) (0) | 2023.05.19 |
---|---|
[Network]브라우저 렌더링 원리 (0) | 2023.04.03 |
[Network] 프로토콜(Protocol)이란? (0) | 2022.11.24 |
[Network] 인터넷(Internet)이란? (0) | 2022.09.28 |
[Network] SOAP(Simple Object Access Protocol)이란? (with REST API 간단 비교.) (0) | 2022.07.16 |