브라우저에 URL을 치면 발생하는 일

브라우저가 DNS 서버에서 도메인 명으로 IP 주소를 가져옴

② 이후, 브라우저HTTP Request 요청 메세지를 작성하고,
     OS의 프로토콜 스택메세지 전송을 의뢰함

프로토콜 스택이 LAN에 제어 정보를 담은 패킷을 LAN 어댑터에 넘김

LAN 어댑터는 제어 정보가 담긴 패킷을 전기신호로 변환시켜, LAN 케이블로 송출

⑤ 송신한 패킷허브, 스위치, 라우터를 경유해서 Provider에게 전달됨

패킷은 수많은 Access 회선을 통해서 POP를 거쳐서 인터넷 핵심부에 들어감

⑦ 이후, 많은 고속 라우터들 사이로 패킷이 상대방 서버까지 도달

서버 측의 LAN패킷이 도착하면, 방화벽패킷을 검사

패킷에 이상이 없을 경우, 캐시 서버가 먼저 응답 데이터가 있는지 확인

캐시 서버응답 데이터가 없을 경우, 웹 서버에 전송

패킷웹 서버에 도착하면, 프로토콜 스택패킷을 추출해서 WAS에 전달

⑫ 추출된 패킷을 받은 WASResponse 응답 메세지를 작성하여, 클라이언트에 전송.
     응답 메세지의 전송은 본 과정 방법을 다시 수행하여 클라이언트에 전달됨.




쿠키와 세션

  • HTTP는 상태와 연결에 대한 정보를 저장하지 않으므로, 이를 도와주는 것이 쿠키세션

1) 쿠키

  • 사용자 정보가 담긴 텍스트 파일
  • 브라우저에 저장
  • 통신할 때 HTTP 헤더에 포함되어 전송
  • HTTP 통신 과정에서, 쿠키 정보가 노출될 수 있어서 보안이 떨어짐

2) 세션

  • 사용자 정보를 서버에 저장
  • 브라우저 종료될 때까지, 정보가 유지
  • 서버에 저장되므로, 보안이 강화됨

Question) "쿠키와 세션에 대해 설명해주세요."

HTTP의 경우, 상태와 연결에 대한 정보를 저장하지 않아서,
이것을 도와주는 것이 쿠키세션 입니다.

  • 쿠키는 사용자 정보가 저장된 텍스트 파일 입니다.
    브라우저에 저장되면서, 통신할 때 HTTP 헤더에 포함되어 전송 됩니다.
    HTTP 통신 과정에서 쿠키 정보가 노출될 수 있기 때문에, 보안에 취약 하다는 특징이 있습니다.

  • 세션은 사용자 정보를 서버에 저장하는 것 입니다.
    브라우저가 종료될 때까지 정보가 유지 됩니다.
    서버에 저장되기 때문에, 보안이 강화 된다는 특징이 있습니다.




REST API 와  RESTful

1) REST API

  • REST 기반으로 서비스 API 를 구현한 것

  • Representational State Transfer
    : 자원(Resource)의 표현(Representation)으로 상태(State)를 주고 받는 것(Transfer)

    • 자원 = URI

    • 행위 = HTTP Method


2) RESTful

  • REST 원리를 잘 따르는 시스템
    => 자원URI로 표현하고, 행위에 적절한 HTTP Method를 사용

Question) "REST API 에 대해 설명해 주세요."

  • REST APIREST를 기반으로 서비스 API를 구현한 것 입니다.
    REST는 자원의 표현으로 상태를 주고 받는 것을 의미 합니다.
    자원URI로 표현하고, 자원에 대한 행위HTTP Method로 표현 합니다.

  • RESTfulREST 원리를 잘 따르는 시스템을 의미 합니다.
    자원URI로, 행위에 맞는 적절한 HTTP Method를 사용한 것이 RESTful한 메소드 입니다.
    예시로 들어보면, CRUD 기능을 모두 HTTPPOST 메소드로 처리한 것을
    RESTful 하지 않다 고 할 수 있습니다.




HTTP 응답 코드

1) 100번대

  • 조건부 응답
  • 요청을 받았고, 처리중을 의미

2) 200번대

  • 요청이 성공적으로 처리 되었음(Successful Response)을 의미

3) 300번대

  • 리다이렉션(Redirection) 의미
  • 클라이언트를 지정된 위치로 이동시킴

4) 400번대

  • 클라이언트의 오류를 의미
  • HTTP 요청이 잘못되거나, 권한이 없는 경우

5) 500번대

  • 서버의 오류를 의미
  • 서버가 요청을 제대로 수행하지 못할 경우

Question) "HTTP 응답 코드에 대해 설명해 주세요."

HTTP 응답 코드의 종류는 크게 5가지가 있습니다.

  • 100번대는 조건부 응답으로, 요청을 받아서 처리중을 의미 합니다.
  • 200번대Successful Response로, 요청이 성공적으로 처리 되었음을 의미 합니다.
  • 300번대리다이렉션으로, 클라이언트를 지정된 위치로 이동시키는 것을 의미 합니다.
  • 400번대클라이언트의 오류로, HTTP 요청이 잘못되거나 권한이 없을 경우 발생 합니다.
  • 500번대서버의 오류로, 서버가 요청을 제대로 수행하지 못할 경우 발생 합니다.




HTTPS

  • 암호화 프로토콜을 사용하여, HTTP 통신을 안전하게 하는 프로토콜
  • HTTP → 암호화 → TCP 통신
  • HTTP의 3가지 문제점을 보완하기 위함
    • 암호화를 하여 도청 방지, 변조 방지
    • 인증서를 통해 통신 상대를 확인하여 위장 방지



HTTP의 문제점 3가지

1) 도청

  • HTTP는 암호화를 하지 않아서, 전송 도중 도청이 가능
    ex) 패스워드를 전송 했는데, 중간에 누군가가 패스워드를 알아낼 수 있음

2) 위장

  • 통신 상대를 확인하지 않음
    ex) 계정 정보를 입력하여 네이버에 전송 했는데, 목적지가 네이버인지 확인하지 않고 바로 전송함.
           네이버의 DNS 서버가 해킹 당할 경우, 네이버가 아닌 다른 곳으로 정보가 전송될 수 있음.

3) 변조

  • 응답의 완전성을 보장하지 못함
  • 응답을 중간의 누군가가 수정할 수 있음

Question) "HTTPS 에 대해 설명해 주세요."

HTTPS암호화 프로토콜을 사용하여, HTTP 통신을 안전하게 하는 프로토콜 입니다.
HTTP는 3가지 문제점이 존재 합니다.

  • 첫 번째는 평문 통신을 하여, 도청이 가능 합니다.
  • 두 번째는 통신 상대를 확인하지 않아서, 위장이 가능 합니다.
  • 세 번째는 응답의 완전성을 보장할 수 없어서, 변조가 가능 합니다.

    따라서, 이러한 HTTP의 3가지 문제점을 보완하기 위해 HTTPS를 사용 합니다.
    구체적으로는 HTTP에서 통신하는 소켓암호화 프로토콜을 사용하여, TCP와 통신하도록 합니다.




profile
Silver Star

0개의 댓글