아래 내용은 위의 글을 보고 축약한 내용으로 아주 자세한 내용은 위의 글을 참고해주세요.
요약
1. 웹 브라우저(크롬, 파이어폭스 등)에 url을 친다. 또는 링크를 클릭한다.
2. 웹 브라우저가 dns(Domain Name System)를 통해 내가 요청한 데이터를 가지고 있는 호스팅 서버를 찾는다.
3. TCP 연결을 설정하여 호스팅 서버와 연결한다.
4. HTTP(S) 프로토콜로 요청을 보낸다.
5. 웹서버가 요청을 처리하고 그에 대한 응답을 전송한다.
6. 응답을 받은 브라우저가 화면에 보여준다.
1. 웹 브라우저(크롬, 파이어폭스 등)에 url을 친다. 또는 링크를 클릭한다.
통신규약(Protocol)이다. 어떠한 방식으로 통신하겠다는 규약. ftp://, mailto://, file:// 같은 것들이 있다.
도메인(Domain)이다. 서버의 IP를 알기 쉽게 붙인 이름이다.
경로(Path)이다. 요청한 데이터가 있는 곳으로 가는 경로이다.
리소스(Resource)이다. 요청한 데이터를 말한다.
2. 웹 브라우저가 dns(Domain Name System)를 통해 내가 요청한 데이터를 가지고 있는 호스팅 서버를 찾는다.
- (서버)호스팅이랑 서버의 일부분을 임대해줘서 사용할 수 있게 해주는 것이다.
- 즉 어떤 사업자가 서버를 돈주고 빌려서(호스팅) 데이터를 저장해 두고 우리는 그것을 url 요청을 통해 받아보는 것이다.
- 호스팅 서버는 물리적으로 데이터 센터(IDC, Internet Data Center)에 존재한다.
- 서버 또한 컴퓨터이다. 모니터가 없고 매우 많은 수가 연결되어 있을 뿐.
- 웹 서버에 직접 도달하는 방법은 위치에 따라 효율적이지 않을 수 있다. 요즘에는 많은 웹 사이트들이 직접 서버에 연결하기 보다는 콘텐츠 전송 네트워크(CDN, Contents Delivery Network)를 사용하여 정적 및 동적 콘텐츠를 가까운 서버에 위치시킨다. 예를 들어, 동영상이나 음악 파일 같은 것은 멀리 외국에 있는 웹 서버에서 제공하기 보다는 현재 사용하는 인터넷 서비스 제공자들의 데이터 센터에 있는 콘텐츠 배포 서버에 위치해 있을 확률이 크다. 그래야 버퍼링 없이 서비스를 즐길 수 있기 때문이다.
3. TCP 연결을 설정하여 호스팅 서버와 연결한다.
4. HTTP(S) 프로토콜로 요청을 보낸다.
- HTTPS일 경우 주고 받는 데이터의 암호화를 위한 TLS (Transport Layer Security) 핸드셰이크라는 추가 과정을 수행한다.
- 요청은 크게 3부분, 요청 라인, 요청 헤더, 본문 으로 구성되어 있다.
첫번째인 요청라인에는 요청을 보내는 방식이 써져 있는데 GET, POST, PUT, PATCH, DELETE 등이 있으며 GET은 데이터를 받는 것, POST, PUT, PATCH는 데이터를 추가하거나 업데이트 하는 것, DELETE는 데이터를 삭제하는 것이다.
두번째인 요청 헤더에는 요청을 라우팅하는데 도움이 되는 추가 정보, 어떤 유형의 클라이언트가 요청을 보냈는지 등이 작성되어 있다. 키-벨유 형식이다.
- 마지막 본문에는 POST, PUT 또는 PATCH와 같은 리소스를 조작하는 요청의 경우 생성하거나 업데이트할 클라이언트의 데이터가 작성되어 있다. GET 요청에 대해는 (보통) 비어 있다.
5. 웹서버가 요청을 처리하고 그에 대한 응답을 전송한다.
- 응답은 크게 3부분, 상태라인, 응답 헤더, 요청한 데이터 로 구성되어 있다.
상태라인에는 성공, 에러 여부를 알려준다.
응답 헤더에는 해당 응답을 어떻게 처리하면 되는지 응답 처리 방법이 적혀있다.
마지막에는 HTML, CSS, Javascript, 그리고 이미지 파일과 같은 콘텐츠 또는 데이터가 적혀 있다.
6. 응답을 받은 브라우저가 화면에 보여준다.
- 브라우저 내의 렌더링 엔진이 받은 응답을 파싱(실행할 수 있는 내부 포맷으로 변환)하고 렌더링(요청을 통해 받은 데이터를 화면에 보여주는 것.) 한다.
'기타' 카테고리의 다른 글
저장 글 (0) | 2024.06.21 |
---|---|
디스크, 파티션, 볼륨이란?(feat. 볼륨이 뭔데?) (1) | 2023.09.20 |
Intellij에서 git clone을 받았는데 프로젝트가 갈색으로 표시된다. (0) | 2022.10.18 |
댓글