Web / Network

Network와 관련된 질문과 답변

브라우저의 동작 방식은?

  1. 웹 브라우저는 웹 리소스를 서버에 요청하고 응답을 화면에 표시하는 프로그램입니다.

  2. 웹브라우저에 url을 입력하고 엔터를 누르면,

  3. 웹 브라우저는 먼저 캐시가 있는지 확인한다.

  4. 캐시가 없다면 DNS를 통해 서버 ip 주소를 찾는다.

  5. ip 주소를 찾으면 서버와의 통신을 위해 TCP 연결을 시도한다.

  6. 웹 브라우저가 http 요청을 서버로 전송하면

  7. 서버는 그에 맞는 처리를 하고 브라우저에게 응답을 보낸다.

  8. 웹 브라우저는 HTML 파일을 parsing하여 DOM 트리를 구성하고 렌더링을 합니다.

브라우저의 탭(Tab)은 무엇인가

브라우저가 웹 페이지 또는 문서를 표시하기 위한 공간이다. 일반적으로 상단에 탭 메뉴가 위치한다.

각각의 탭은 개별 프로세스로 존재한다

Cross-Origin Resource Sharing(CORS)에 대해서 설명해주세요

Search Engine Optimization(SEO)란?

Restful API에 대해서 설명해주세요

RESTful API는 HTTP 프로토콜을 기반으로하는 웹 서비스 아키텍처입니다. 자원, 메소드, 메시지 등을 정의하여 클라이언트-서버 간의 통신을 가능하게 합니다. 또한, RESTful API는 표준 HTTP 메소드(GET, POST, PUT, DELETE)를 사용하여 서버와 통신합니다

HTTP 메서드에 대해서 설명해주세요.

  • GET: 서버에서 리소스(데이터)를 요청하는 메소드입니다. 요청한 데이터를 가져와 응답합니다.

  • POST: 서버에 데이터를 전송하는 메소드입니다. 데이터를 전송하여 서버에서 처리하고, 처리 결과를 응답합니다.

  • PUT: 서버에 데이터를 업데이트하는 메소드입니다. 요청한 데이터를 서버에 저장하고, 처리 결과를 응답합니다.

  • DELETE: 서버에서 데이터를 삭제하는 메소드입니다. 요청한 데이터를 서버에서 삭제하고, 처리 결과를 응답합니다.

CSRF나 XSS 공격을 막는 방법은?

CSRF 공격을 막기 위해서는 서버에서 CSRF Token을 생성하여 세션에 저장하고, 프론트엔드에서 요청 시 해당 Token을 함께 전송하여 인증합니다. SameSite 속성을 쿠키에 설정하여 도메인이 다른 사이트에서는 쿠키를 사용할 수 없도록 제한하는 방법도 있습니다. XSS 공격을 막기 위해서는 입력 값들을 유효성 검증하고, 특수문자들을 제외하는 정규식을 통해서 제거합니다. 또, 서버에서 CSP(Content-Security-Policy)정책을 설정하여, 허용된 스크립트만 실행되도록 제한 할 수도 있습니다. 마지막으로, HTTP 대신에 신뢰할 수 있는 HTTPS를 사용하여 통신 프로토콜을 암호화할 수 있습니다.

이미지 최적화와 그 방법은?

HTTP, HTTPS의 차이점은?

"HTTP(HyperText Transfer Protocol)에 암호화와 보안성을 더한 HTTPS(HTTP over Secure Socket Layer) 버전"

https는 http 프로토콜에 인증서를 사용하여 서버와 통신의 보안을 강화하는 것이다. HTTP는 텍스트 기반 프로토콜이므로 네트워크 상의 제3자는 쉽게 스니핑(패킷 엿듣기)을 할 수 있다. 웹이 발전하면서 웹 상에서 중요한 데이터를 다룰 일이 많아졌고, 보안의 필요성이 생겼다. 인증서를 사용하면 공개키를 통해 암호화를 진행해 안전하게 서버에게 데이터를 전송할 수 있다.

SSL 인증서는 인증 기관을 통해 발급받아 서버에 설치하여 사용한다. 인증서를 제 3자인 인증 기관에서 관리하는 이유는 신뢰성 때문이다. 스스로 인증서를 만들 수도 있지만, 검증할 수 없기 때문에 안전하지 않다.

TCP, UDP 방식의 차이점은?

tcp와 udp는 전송계층의 주요 통신 프로토콜 입니다.

TCP → http

신뢰적인 연결 지향성 서비스를 제공합니다

데이터 손실이 적고 도착 순서를 보장합니다.

대용량 파일을 보내거나 영상통화 같은 작업에서 적합합니다

UDP

신뢰성이 없는 비연결형 서비스로

도착 순서를 보장하지 않고 오류 제어가 거의 없지만 속도가 빠릅니다

실시간으로 빠르게 통신해야 하는 경우 적합하다

쿠키, 세션, 웹스토리지 차이점은?

웹표준에 대해서 설명해주세요.

웹 접근성에 대해서 설명해주세요.

AJAX에 대해서 설명해주세요.

GET, POST 방식의 차이점에 대해서 설명해주세요

  • GET과 POST는 HTTP 요청 메서드 입니다.

  • GET 메서드는 서버에서 리소스를 가져오기 위해 요청하는 메서드로 데이터를 가져오기 위해서만 사용합니다.

  • POST 방식은 서버에 데이터를 전송하기 위한 메서드입니다. form을 이용하여 사용자의 입력을 받아 데이터를 전송할 때 주로 사용됩니다.

  • 서버에 데이터를 전송하여 변경 사항을 만들기 때문에 멱등성을 가지지 않아 잘 캐시하지 않습니다.

  • GET과 POST의 가장 큰 차이는 GET은 URL과 헤더를 통해서만 데이터를 요청하지만, POST는 header의 body를 사용하여 더 다양한 데이터를 서버에 전송할 수 있습니다.

쿠키

쿠키는 브라우저에 저장되며, 서버와 통신할 때 자동으로 함께 보내집니다. 서버에서 쿠키를 설정하여 응답을 보내면 받는 브라우저는 자동으로 쿠키가 저장됩니다. 쿠키는 동일한 origin(도메인 출처) 또는 cors(다른 출처에 리소르 요청을 허용하는 정책 )를 허용하는 위치로만 쿠키를 보냅니다. 브라우저는 기본적으로 **Same Origin Policy(SOP)**를 원칙

세션

세션은 웹 사이트와 서버간의 연결 상태를 의미하는 개념으로 서버에 세션 저장소를 따로 두어 임시로 데이터를 저장하여 상태를 유지하거나 로그인과 같은 인증을 위한 사용자 식별을 담당합니다.

웹스토리지

웹 스토리지는 키/값 쌍으로 이루어진 데이터를 저장하는 브라우저 내의 저장소입니다.

sessionStorage는 페이지 세션이 유지되는 동안 데이터가 지속되는 저장소입니다. localStorage는 브라우저는 닫았다가 다시 열어도 데이터가 유지되는 저장소입니다. 별도의 유효기간이 없어 자바스크립트를 사용해 직접 제거하거나 브라우저의 캐시를 삭제해야 합니다.

Last updated