✅혼자 공부하는 네트워크 | 📖용어노트
5주차 (8/5 ~ 8/11) | Chapter 05 | Ch.05(05-1) 확인 문제 1번(p.271), (05-2) 확인 문제 2번(p.307), 풀고 설명하기 | HTTP 요청 메시지 확인해 보기 |
6주차 (8/12 ~ 8/18) | Chapter 06~07 | Ch.06(06-2) 확인 문제 1번(p.379), (07-2) 확인 문제 2번(p.407) 풀고 설명하기 | 와이어샤크에서 실제 TCP/UDP 패킷 확인해 보기 |
도메인 네임 : 호스트의 IP 주소와 대응되는 문자열 형태로 서버 호스트를 특정할 수 있는 정보
DNS(Domain Name System) : 계층적인 도메인 네임을 효율적으로 관리하기 위한 관리 체계
네임 서버 : 호스트의 도메인 네임과 IP 주소의 짝을 모아서 관리하는 서버(로컬 네임 서버, 루트 네임 서버, TLD(Top Level Domain) 네임 서버, 책임 네임 서버)
계층적으로 구성된 도메인을 찾아 나가는 과정 ex) https://www.saramin.co.kr.
- 클라이언트와 맞닿아 있는 로컬 네임 서버로 해당 호스트 (www.google.com.)의 IP주소를 찾기 위해 질문을 보냄 / 로컬 네임 서버는 일반적으로 ISP(Internet Service Provider / SKT, KT, LG 등)에서 할당해 주는 서버를 이용함. 세계적으로 유명한 공개 DNS 서버는 구글의 8.8.8.8과 클라우드플레어의 1.1.1.1이 있음(ISP의 DNS 서버 대신 로컬 서버로 이용 가능)
- 로컬 네임 서버에서 최상위 네임 서버인 루트 네임 서버(.)로 질의를 보냄. 보통 루트 네임 서버는 도메인 네임에서 생략됨.
- 루트 네임 서버(.)에서 TLD 네임 서버(kr)로 질의를 보냄.
- 이를 쭉 반복
- 책임 네임 서버(saramin)에 도착 후 IP 주소를 반환받음.
URI(Uniform Resource Identifier) : 해당하는 서버의 IP 주소 또는 도메인 주소를 포함한 자원을 식별하는 통일된 방식.(URL(Uniform Resource Locator)과 URN(Uniform Resource Name)이 있음. 보통 URL 사용)
URL ex) http://www.example.com:8080/insta/post?date=240811&page=1
schema = 자원에 접근하는 방법(http://)
authority = 호스트를 특정할 수 있는 정보(www.example.com / IP주소도 가능, 포트 번호를 추가하는 경우도 있음)
path = 해당 호스트 내에 파일이 있는 위치(insta/post / 화면에 보여지는 html 파일이나 이미지 등)
query = 해당 url에서 추가적인 디테일한 정보(?date=240811&page=1 / 240811에 올린 글만 모아서 그중 1페이지)
fragment = html 파일과 같은 자원에서 특정 부분(ex) https://datatracker.ietf.org/doc/html/rfc3986#section-1.1.2 / 이렇듯 보통 목차별로 정리된 문서에서 사용.)
위의 전체적인 url은 개발자가 설계하기 나름임.
HTTP의 특성
- 요청-응답 기반 프로토콜 : 클라이언트와 서버가 서로 HTTP 요청 메시지와 응답 메시지를 주고받는 구조로 동작.
- 미디어 독립적 프로토콜 : 자원의 특성(html, png, json 등)을 제한하지 않으며 그저 자원을 주고받을 수단의 역할만 수행
- 스테이트리스 프로토콜 : 서버가 HTTP 요청을 보낸 클라이언트와 관련된 상태를 기억하지 않음 / 보통 서버는 수많은 클라이언트와 상호작용을 하므로 이런 상황에서 모든 클라이언트의 상태 정보를 유지하는 것은 서버에 큰 부담임.
- 지속 연결 프로토콜 : 초기의 HTTP 버전(1.0 이하)는 HTTP 요청, 응답을 위해 매번 TCP 연결을 새로 해야 했음.(비지속 연결) 1.1 이상의 HTTP는 지속 연결 기능을 통해 하나의 TCP 연결상에서 여러 개의 요청-응답을 주고받을 수 있게 됨.
HTTP 메세지 구조
시작라인
필드라인
메세지 본문
HTTP 메세지는 시작라인, 필드라인, 메시지 본문의 구조를 가지며 그 중, 시작라인은 요청이냐, 응답이냐에 따라 두가지로 나뉨.
요청일 경우 : 메서드 공백 요청대상 공백 HTTP 버전
메서드 : get, post, delete 등이 있으며 메서드로 인해 restful api 설계가 가능함.
요청 대상 : 요청할 자원을 의미(위 URL 예에서 authority 를 포함한 뒷부분. 만약 없을 시 요청라인은 "/" 로 표시)
HTTP 버전 : HTTP 버전
응답일 경우 : HTTP 버전 공백 상태 코드 공백 이유구문
HTTP 버전 : HTTP 버전
상태 코드 : 100~500까지 있으며 100번대는 정보성 상태 공유, 200번대는 성공했을 시, 300번대는 리다이렉션 관련, 400번대는 클라이언트 측에서 에러가 난 경우, 500번대는 서버 측에서 에러가 난 경우. 사용자의 경우 일반적으로 400, 500번대를 보게 됨.
이유 구문 : 해당 상태 코드에 대한 설명
필드 라인에는 헤더 값들이, 메시지 본문에는 실제 내용들이 입력됨.
캐시 : 클라이언트가 같은 자원(이미지, html 등)을 요청할 때, 서버가 반복적으로 자원을 보내는 것은 비효율적이므로, 해당 자원을 임시로 저장해 두고, 해당 자원이 업데이트 됐을 때에 새로운 자원을 받을 수 있게 해 줌.
해당 클라이언트의 웹브라우저에 저장하는 개인 전용 캐시와 클라이언트와 서버 사이에 위치한 중간서버에 저장하는 공용 캐시가 있음.
쿠키 : 서버에서 생성되어 클라이언트 측에 저장되는 데이터로 적용 범위와 만료 기간 등 다양한 속성을 가지고 있으며, 해당 서버의 웹페이지를 이용할 때마다 인증을 하지 않도록 해줌.(스테이트리스를 보완)
접기 시작
p.271 확인문제 1번
도메인 네임과 네임 서버에 대한 설명으로 옳지 않은 것을 골라 보세요. 4
- 8.8.8.8은 대표적인 공개 DNS 서버로, 구글이 관리합니다.
- 도메인 네임은 호스트를 특정할 수 있는 문자열 형태의 정보입니다.
- DNS는 계층적이고 분산된 도메인 네임에 대한 괄리 체계이자 이를 관리하는 프로토콜입니다.
- www.example.com에서 루트 도메인은
com에 해당합니다. 생략된 .
p.307 확인문제 2번
HTTP 상태 코드에 대한 설명으로 옳지 않은 것을 골라 보세요. 1
- 300번대 상태 코드는
요청한 자원이 존재하지 않음을 의미합니다. 리다이렉션 - 400번대 상태 코드는 클라이언트에 의한 에러를 의미합니다.
- 500번대 상태 코드는 서버에 의한 에러를 의미합니다.
- 200번대 상태 코드는 요청이 성공했음을 의미합니다.
HTTP 요청 메시지 확인해 보기

'정리 > 혼자 공부하는 네트워크(혼공네)' 카테고리의 다른 글
[혼공네] 혼공학습단 회고 (0) | 2024.08.15 |
---|---|
[혼공네] 6주차 챕터 6, 7 정리 (0) | 2024.08.15 |
[혼공네] 4주차 전송 계층 정리(TCP/UDP) (0) | 2024.08.03 |
[혼공네] 3주차 네트워크 계층 정리(ip) (0) | 2024.07.21 |
[혼공네] 2주차 물리 계층과 데이터 링크 계층 정리 (0) | 2024.07.14 |