이번 시간에는 네트워크 통신과정의 기초부분과 HTTP 리퀘스트 및 도메인 동작과정에 대해 이야기해보는 시간을 갖도록 하겠습니다.
네트워크 통신 - 간단한 과정
1. 웹 브라우저가 메시지를 만든다.
2. TCP/IP의 데이터를 전기 신호로 만들어서 보낸다.
3. 전기 신호가 케이블의 LAN을 통해 이동한다.
4. 액세스 회선을 통해 인터넷 내부로 접근한다.
5. 서버측의 LAN으로 접근한다.
6. 전기 신호가 웹 서버에 도착하여 응답 데이터가 웹 브라우저로 돌아간다.
네트워크 통신 - HTTP 리퀘스트
브라우저는 웹 서버에 보내는 리퀘스트 메시지를 작성하기 위해 URL을 해독합니다.
URL을 해독하고 나면 브라우저는 HTTP 프로토콜을 사용하여 웹 서버에 액세스합니다. URL이 "무엇을"에 해당한다면 HTTP 프로토콜은 "어떻게"에 해당한다고 할 수 있습니다.
HTTP 프로토콜: 클라이언트와 서버가 주고받는 메시지의 내용이나 순서를 정한 규약
GET: 읽기
POST: 폼에 데이터를 입력해 웹 서버에 송신하는 경우에 사용
PUT: 리소스를 업데이트하기 위해 웹 서버로 데이터를 송신하는 경우 사용
DELETE: 지정된 리로스를 삭제하는 경우
POST vs PUT
POST는 새로운 데이터를 계속 생성하기 때문에 요청마다 데이터를 생성하지만, PUT은 사용자가 데이터를 지정하고 수정하는 것이기 때문에 같은 요청을 계속하더라도 데이터가 계속 생성되진 않습니다.
네트워크 통신 - DNS 서버 조회
HTTP 메시지를 만들면 이것을 OS에 의뢰하여 액세스 대상의 웹 서버에 송신하는 단계를 거칩니다. 브라우저는 URL을 해독하거나 HTTP 메시지를 만들지만, 메시지를 네트워크로 송출하는 기능이 없으므로 OS에 의뢰를 하는 것입니다. 이때 URL 안에 쓰여있는 서버의 도메인 명에서 IP주소를 조사해야 합니다.
IP 주소를 조회하는 과정
1. Socket 라이브러리의 DNS 리졸버를 호출한다.
2. DNS 리졸버가 DNS 서버에 문의를 위한 메시지를 만든다.
3. OS 내부의 프로토콜 스택을 호출하여 실행을 의뢰한다. (브라우저처럼 네트워크 데이터 송수신 기능이 없기 때문)
4. LAN 어댑터를 통해 메시지가 DNS 서버를 향해 송신된다.
5. 메시지는 네트워크를 통해 클라이언트측에 도착하고, 프로토콜 스택을 경유하여 리졸버에 건네진다.
6. 리졸버는 메모리 영역에 IP주소를 저장한다.
7. IP 주소가 어플리케이션에 건네진다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] DNS를 통한 IP 주소 확인 과정 (0) | 2023.01.09 |
---|---|
[네트워크] 쿠키와 세션 정리 (0) | 2022.10.21 |