- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 비주얼 베이직
- sql
- 코딩테스트
- 안드로이드
- 동적할당
- firebase google
- 프로그래밍 입문
- til
- 안드로이드 스튜디오
- 파이썬
- 구글 로그인
- 공유대학
- 백준
- 로그인
- 배열
- oauth
- 연결리스트
- 자바
- Java
- android studio
- 정렬
- python
- 알고리즘
- 자료구조
- 컴퓨터공학과
- Firebase
- C언어
- C++
- 프로그래머스
코딩하는 해달이
[내배캠] 개발 아티클 스터디 - 웹 브라우저에 URL을 입력하면 어떤 일이 생길까? 본문
1. URL 입력
URL을 구분해보자
https://coreeny.tistory.com/176
통신 규약(Protocol)
https:// : 통신 프로토콜
HTTPS (Hypertext Transfer Protocol Secure) : 브라우저에 전송 계층 보안(TLS)을 사용하여 서버에 연결
TLS : 인터넷을 통한 통신을 보호하는 암호화 프로토콜
도메인(Domain)
coreeny.tistory.com : 웹 사이트의 도메인 이름
기억하기 쉬운 주소이며, 특정 서버의 IP 주소를 나타냄
경로(Path)
/176
URL에 리소스에 대한 추가 경로가 있는 경우
리소스(Resource)
시스템에 저장되어있는 가상의 파일
2. 웹브라우저가 도메인명의 IP 주소 조회
브라우저는 인터넷에서 연결할 서버를 파악함. (입력한 도메인을 사용해서 웹사이트를 호스팅하는 서버의 IP주소 조회)
DNS 조회를 사용하여 작업 수행
DNS
복잡하고 매우 빨라야 하기 때문에 DNS 데이터를 웹 브라우저 사이의 서로 다른 계층과 인터넷의 다양한 위치에 임시로 저장
→ 캐시(Cache)웹 브라우저는 여러 캐시(고유, 운영체제, 라우터의 로컬 네트워크, 회사 네트워크, ISP의 DNS 서버 등)를 확인
이 때, 직접 사용자가 설정한 호스트 파일에 있는 정보가 있는지 먼저 확인
캐시 계층에서 IP주소를 찾지 못했을 경우, 회사 네트워크 또는 ISP의 DNS 서버가 재귀적 DNS 조회를 수행
3. 웹 브라우저가 서버와의 TCP 연결 시작
인터넷에 연결된 웹 브라우저 요청 패킷은 일반적으로 TCP/IP 전송 제어 프로토콜 사용하여 라우터 &rarr ISP교환기 &rarr 라우팅 테이블 &rarr 연결할 IP주소가 있는 웹 서버를 찾음.
요즘에는 웹 서버에 직접 도달하는 방법보다는 콘텐츠 전송 네트워크(CDN)를 사용하여 콘텐츠를 웹 브라우저 가까이에 위치시킴.
EX) 한국 사람들이 자주보는 동영상이나 음악 파일은 외국의 웹 서버보다는 한국에서 사용하는 ISP 데이터 센터의 콘텐츠 배포 서버에 있을 확률이 큼
4. 웹 브라우저가 HTTP 요청을 서버로 전송
웹 브라우저가 서버에 연결되면, HTTP(s) 프로토콜을 따름.
HTTP 요청은 요청 라인, 헤더 및 본문이 포함
요청 라인
- GET, POST, PUT, PATCH, DELETE 등의 HTTP 동사
- 요청된 리소스를 가리키는 경로
- 통신할 HTTP 버전
HTTP 동사는 요청의 의미, 의도를 표현
요청 헤더
헤더는 요청을 라우팅하는데 도움이되는 추가 정보를 클라이언트에서 전달
요청 헤더 예시 Host: coreeny.tistory.com User-Agent: curl/7.64.1 Accept: */*
요청 본문
요청 본문은 보통 GET 요청에 대해 비어있음.
POST, PUT, PATCH와 같은 리소스를 조작하는 요청의 경우, 본문에 생성하거나 업데이트할 클라이언트의 데이터 포함
요청 본문은 서로 다른 형식일 수 있으며, 서버는 요청 헤더의 Content-Type을 기반으로 형식 이해
5. 웹 서버가 요청을 처리하고 응답을 다시 전송
웹서버는 요청을 받고 처리 후 응답 전송
응답에는 상태라인, 응답 헤더, 요청된 리소스가 포함
상태 라인
클라이언트에게 요청 상태를 알려줌
응답 헤더
브라우저에 응답 처리 방법을 알려줌요청된 리소스
해당 경로에서 요청된 리소스(HTML, CSS, JS, 이미지파일 등)
6. 웹 브라우저가 콘텐츠 렌더링
웹 브라우저는 응답 헤더의 Content-Type 헤더를 검사하여 리소스 렌더링 방법에 대한 정보 확인
7. 마무리
간단히 정리해보자면 우리가 URL을 입력했을 때
1. URL을 입력
2. 웹 브라우저가 도메인명의 IP주소 조회
3. 웹 브라우저가 서버와 TCP 연결 시작
4. 웹 브라우저가 HTTP 요청을 서버로 전송
5. 웹 서버가 요청을 처리하고 응답 전송
6. 웹 브라우저가 콘텐츠 렌더링
순서로 데이터를 보여준다는 것이다.
평소에도 웹 브라우저를 사용하면서 어떻게 콘텐츠가 나타나고, 어떤 메커니즘으로 웹이 동작하는지는 생각해보지 못했었는데 오늘 이 아티클을 읽으며 깊이 생각해 볼 수 있었던 계기가 되었다.
[아티클]
https://aws.amazon.com/ko/blogs/korea/what-happens-when-you-type-a-url-into-your-browser/
'내일 배움 캠프' 카테고리의 다른 글
[내배캠] 스타터 노트 (0) | 2024.07.30 |
---|