[모두의네트워크&그림으로 배우는HTTP&Network] 8주차 공부

김서영·2021년 10월 31일
0

네트워크 스터디

목록 보기
8/12

HTTP 헤더

6.7 쿠키를 위한 헤더 필드

쿠키

서버와 클라이언트 간의 상태를 관리하는 쿠키는 웹 사이트에서 널리 사용되고 있음. 쿠키는 유저 식별과 상태 관리에 사용되고 있는 기능.

웹 사이트 유저의 상태를 관리하기 위해 웹 브라우저 경유로 유저의 컴퓨터 상에 일시적으로 데이터를 기록, 다음에 그 유저가 웹 사이트에 액세스 했을 때 지난 번 발행된 쿠키로 송신 받음.

쿠키가 호출되었을 때 쿠키의 유효기간과 송신지의 도메인, 경로, 프로토콜 등을 체크하는 것이 가능. 적절하게 발행된 쿠키는 다른 웹 사이트와 공격자의 공격에 의해 데이터가 도난 당하는 일이 없음.

쿠키 사양서

  • 넷스케이프사에 의한 사양
  • RFC2109
  • RFC2965
  • RFC6265
    헤더 필드 명설명헤더 종별
    Set-Cookie상태 관리 개시를 위한 쿠키 정보리스폰스
    Cookie서버에서 수신한 쿠키 정보리퀘스트

Set-Cookie: status-enable; expires=Tue, 05 Jul 2011 07:26:31 GMT;=>path=/;domain=.hack.jp;

속성설명
NAME=VALUE쿠키에 부여된 이름과 값(필수)
Expires=DATE쿠키 유효 기간(지정되지 않은 경우는 브라우저를 닫을 때까지)
Path=PATH쿠키 적용 대상이 되는 서버 상의 디렉토리(지정하지 않은 경우는 도큐먼트와 같은 디렉토리)
Domain=도메인 명쿠키 적용 대상이 되는 도메인 명(지정하지 않은 경우는 쿠키를 생성한 서버의 도메인)
SecureHTTPS로 통신하고 있는 경우에만 쿠키를 송신
HttpOnly쿠키를 JavaScript(자바스크립트)에서 액세스하지 못하도록 제한

Cookie: status=enable
Cookie 헤더 필드는 클라이언트가 HTTP의 상태 관리 지원을 원할 때 서버로부터 수신한 쿠키를 이후의 리퀘스트에 포함해서 전달.
쿠키를 여러 번 보내는 것 가능.

6.8 그 이외의 헤더 필드

HTTP 헤더 필드는 독자적으로 확장할 수 있음.

  • X-Frame-Option
  • X-XSS-Protection
  • DNT
  • P3P

X-Frame-Option

X-Frame-Option: DENY
다른 웹 사이트의 프레임에서 표시를 제어하는 HTTP 리스폰스 헤더.
클릭 재킹(Click Jacking)이라는 공격을 막는 것이 목표.

  • DENY : 거부
  • SAMEORIGIN : Top-level-browsing-context가 일치한 경우에만 허가

X-XSS-Protection

X-XSS-Protection: 1
X-XSS-Protection 헤더 필드는 크로스 사이트 스크립팅(XSS) 대첵으로서 브라우저의 XSS 보호 기능을 제어하는 HTTP 리스폰스 헤더.

  • 0: XSS 필터를 무효로 함.
  • 1: XSS 필터를 유효로 함.

DNT

DNT: 1
DNT 헤더 필드는 Do Not Track(DNT)라는 뜻. 개인 정보 수집을 거부하는 의사를 나타내는 HTTP 리퀘스트 헤더. 타깃 광고 등에 이용되는 트래킹의 거부 의사를 나타내기 위한 방법 중 하나.

  • 0: 트래킹 동의
  • 1: 트래킹 거부

P3P

P3P: CP="CAO DSP LAW CURa ADMa DEVa TAla PSAa PSDa IVAa IVDa OUR BUS IND UNI COM NAV INT
웹 사이트 상의 프라이버시 정책에 P3P(The Platform for Privacy Preferences)를 사용하는 것. 프로그램이 읽을 수 있는 형태로 나타내기 위한 HTTP 리스폰스 헤더.

네트워크의 전체 흐름 살펴보기

랜 카드에서의 데이터 전달과 처리

네트워크의 구성

응용 계층(세션 계층과 표현 계층을 포함)애플리케이션 등에서 사용하는 데이터를 송수신하는 데 필요
전송 계층목적지에 데이터를 정확하게 전달하는 데 필요
네트워크 계층다른 네트워크에 있는 목적지에 데이터를 전달하는 데 필요
데이터 링크 계층랜에서 데이터를 송수신하는 데 필요
물리 계층데이터를 전기 신호로 변환하는 데 필요

컴퓨터의 데이터가 전기 신호로 변환되는 과정

컴퓨터에서 OSI 모델의 캡슐화 진행, 응용 계층에서부터 시작.
웹 브라우저에 URL을 입력하고 enter키를 누르면 캡슐화가 시작.

컴퓨터에서 웹 브라우저를 이용하여 웹 서버의 웹 사이트에 접속하기 위한 요청을 보낼 때 사용하는 것이 HTTP 프로토콜.
응용 계층에서 HTTP 메세지를 보내면 데이터가 전송 계층에 전달.

전송 계층에서는 TCP 헤더가 붙음. TCP 헤더는 어느 애플리케이션에 데이터를 보내야 하는지 식별하는 출발지 포트 번호와 목적지 포트 번호가 필요. 이 TCP 헤더를 가진 데이터 == 세그먼트

다음에는 데이터가 네트워크 계층으로 전달. IP 헤더가 붙고 출발지 컴퓨터와 목적지 서버의 위치가 추가. (출발지 IP 주소와 목적지 IP 주소) IP 헤더가 붙은 데이터 == IP 패킷.

그 다음에는 데이터 링크 계층으로 전달. 이더넷 헤더가 붙고 이더넷 헤더가 있는 데이터를 이더넷 프레임이라고 함.

물리 계층에서 전기 신호로 변환되어 네트워크로 전송.

스위치와 라우터에서의 데이터 전달과 처리

스위치에서의 데이터 전달과 처리

스위치 A는 데이터 링크 계층에서 데이터를 전기 신호로 변환하여 라우터 A로 전송.

라우터에서의 데이터 전달과 처리

스위치 A --전기 신호 --> 라우터 A

스위치 A에서 데이터가 전기 신호로 변환되어 케이블을 통해 흘러가 라우터 A에 도착하면 라우터 A는 데이터 링크 계층에서 이더넷 프레
임의 목적지 MAC 주소와 자신의 MAC 주소를 비교.

이때 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 진행. 다음으로 네트워크 계층에 전달하고 자신의 라우팅 테이블과 목적지 IP 주소를 비교.

라우터 A의 라우팅 테이블에서 목적지 IP 주소의 경로를 알면 라우팅 가능. 현재 IP 주소를 라우터의 외부 IP주소로 변경 후, 데이터 링크 계층으로 전달하여 라우터 B로 보내지도록 이더넷 헤더와 트레일러를 붙인 뒤 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크로 전달.

라우터 A --전기 신호 --> 라우터 B.
라우터 B에 도착하면 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소 비교.
주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화 수행. 그 다음 네트워크 계층으로 전달되면 자신의 라우팅 테이블과 목적지 IP 주소 비교.
현재의 출발지 IP주소를 라우터 B의 내부 IP주소로 변경. 데이터 링크 계층에 전달하여 스위치에 전달되도록 이더넷 헤더와 트레일러(FCS)를 붙인 후 물리 계에서엣 데이터를 전기 신호로 변환하여 네트워크로 전달.

라우터 B --전기 신호 -->스위치 B
데이터 링크 계층에서 처리하고 웹 서버에 데이터를 전기 신호로 전달.

웹 서버에서의 데이터 전달과 처리

데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소 비교. 주소가 같으면 이더넷 헤더와 트레일러를 분리하고 네트워크 계층에 전달.

네트워크 계층에서는 목적지 IP 주소와 웹 서버의 IP 주소가 같은지 확인. 주소가 같으면 IP 헤더를 분리하고 전송 계층에 전달.

전송 계층에서는 목적지 포트 번호를 확인. 어떤 애플리케이션으로 전달해야 하는지 판단하고 TCP 헤더를 분리하여 응용 계층에 전달.

웹 서버의 응용 계층에 도착.

profile
하지만 저는 이겨냅니다. 김서영이죠?

0개의 댓글