HTTP/네트워크[면접용]

Jelkov Ahn·2021년 11월 18일
0

HTTP / 네트워크

목록 보기
11/11
post-thumbnail

QUIZ

(1) HTTP

  • 웹 개발에서 사용하는 대표적인 프로토콜
  • 80번 포트를 사용해서 통신을 함
  • 22 : SSH
    80 : HTTP
    443: HTTPS

(2) URL의 구성요소

  • URL의 구성요소는 scheme, hosts, url-path
    scheme (ex. https://)
    hosts (ex. www.google.com/)
    url-path (ex. search)
  • 추가 될수 있는 부분
    query (ex. ?q=JavaScript)
    bookmark (ex. #section1)

(3) 그림을 보고 유추해 보자

  • 로컬 PC의 IP 주소인 127.0.0.1로 접속이 가능하다.
  • 포트번호는 3001에서 실행중이다.
  • 터미널에 나타난 호스트 주소(172.30.1.14)로 접속하면 리액트 화면을 확인할 수 있다.

(4) AJAX

  • Asynchronous JavaScript and XML 의 줄임말
  • 브라우저 주소창에 주소를 입력하면 그 사이트 서버에 get 요청을 하는 것이다.
  • fetch를 사용하여 서버의 응답을 확인하다.(.then 사용)
  • CSR을 위해 사용된다.
  • 지금은 XHR을 개선한 Fetch API를 사용하여 편리하게 AJAX를 구현할 수 있게 되었다.

(5) CSR SSR

  • CSR 서버는 주로 API 응답을 담당한다.
  • 경로가 변경될 때마다 새로운 정적 파일을 요청하는 것은 SSR의 특징이다.
  • SEO가 가장 우선 순위인 경우는, SSR을 사용합니다.
  • 동적 상호작용이 많으면 CSR

(6) HTTP message

  • 요청 첫번째줄 Start line 응답 첫번째줄 Status line
  • GET method는 URL에 맞는 리소스를 요청합니다. (Read)

(7) CSR 에서 클라이언트와 서버의 역할

  • 클라이언트 (리소스를 사용하는 앱) :
    서버로부터 받은 응답에 따라 다른화면을 표시합니다.
    유저와의 전반적인 상호작용을 담당합니다.

  • 서버 (리소스가 존재하는 곳):
    클라이언트의 요청에 따라 적절한 응답을 되돌려 줍니다.
    클라이언트의 요청에 따른 정보를 응답합니다.

(8) CORS

  • 클라이언트와 서버가 서로 다른 origin에 있는 경우가 있으므로 CORS가 도입되었다.
  • 서버쪽에서 클라이언트를 대상으로 리소스의 허용 여부를 결정하는 방법이다.
  • 같은 origin에서 fetch를 시도하면 CORS 문제가 발생하지 않는다.
  • 클라이언트는 서버가 어떤 origin 요청을 허용하는지는 알 수 없습니다.

(9) origin(출처)가 다르다고 판단하는 기준

  • 프로토콜, 호스트(도메인), 포트번호
    1) http -> 프로토콜
    2) velog.io/ -> 호스트(도메인)
    3) :3000 -> 포트 번호

(10) preflight request

  • 실질적인 요청 전 "OPTIONS"메소드를 통해 사전에 요청이 안전한지 확인하는 방법입니다.
  • 실질적인 요청 전 "OPTIONS"메소드를 통해 사전에 요청이 안전한지 확인하는 방법입니다.
  • 모든 cross origin 요청이 preflight request를 발생시키는 것은 아니다.
  • cross origin 요청에는 Simple requests, Preflighted requests, Requests with credentials 등이 있는데
    이중 Preflighted requests만 OPTIONS 메소드를 통해 요청을 확인합니다

(11) URL은 URI라고 할 수 있지만, URI가 더 큰 개념이기 때문에 URI는 URL이라고 할 수 없다.
URI > URL

(12) POST 멱등성(idempotent)을 가지지 않습니다.

  • 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 리소스 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다. 다르게 이야기하면 멱등성 메서드에는 통계 기록 등을 제외하면 어떠한 부수 효과(side effect)도 존재해서는 안됩니다. 올바르게 구현한 경우 GET, HEAD, PUT, DELETE 메서드는 멱등성을 가지며, POST 메서드는 그렇지 않습니다.

(13) DNS

  • DNS(Domain Name System)은 도메인 주소를 IP 주소로 변환하는 시스템 입니다.
  • 도메인 주소는 가장 왼쪽부터 오른쪽으로 서브도메인(Sub Domain), 루트 도메인(Root Domain), 최상위 도메인(Top Level Domain)으로 구성되어 있습니다.
  • 도메인 네임 서버 중 권한 있는 네임 서버는 IP 주소 및 도메인 정보를 관리하는 권한을 가진 서버입니다.
profile
끝까지 ... 가면 된다.

0개의 댓글