CS 공부

[IT기술 면접] 네트워크 예상질문

미 성 2024. 3. 14. 16:15

 


 


 
1 . HTTP와 HTTPS의 차이
 
 
http : 웹 서버와 웹 브라우저 사이에서 문서를 전송하기 위한 통신규약
 
http는 정보를 텍스트로 주고받음
- 원하지 않는 데이터 유출 가능성
 
https를 사용하면 서버와 클라이언트 사이의 모든 통신 내용이 암호화 된다. http와 달리 보안 기능이 추가된만큼, 처리속도가 느려짐. 그러나 현재는 http와 https의 차이가 체감하기 어려울만큼 좁아짐.
 


 
 
2. HTTP 1.1 VS HTTP 2.0
 
HTTP 1.1
- 요청과 응답이 순차적으로 이루어짐
- 클라이언트는 여러 요청을 보내도, 서버가 한 번에 하나의 요청만 처리하여 응답할 수 있었던 것.
- 요청할 리소스에 비례해서 대기시간이 증가
 
HTTP 2.0
- multiplexed streams
- stream priorization
- server push
: 서버가 클라이언트의 요청 없이도 클라이언트에게 데이터를 전송할 수 있는 기술

예를 들어, 클라이언트가 웹페이지의 HTML 파일을 요청하면 서버는 HTML 파일뿐만 아니라 해당 페이지에 필요한 CSS, JavaScript 파일도 함께 전송할 수 있음
 


 
3. HTTP 프로토콜의 특징

1. 비연결 지향
2. 상태정보 유지 안함 : 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않는다.
 
( 해결방안 : 세션과 쿠키 )
 


 
 
4. HTTP 메소드 - CRUD 관점에서 설명
( C: create, R :read, U : update, D :delete )
 
- POST
: 서버에 특정 엔티티를 제출할 때 사용
- GET
: 특정 리소스의 참조를 요청
- PUT
: 해당 리소스를 수정 (전체 자원을 업데이트)
- DELETE
: 삭제할 때 사용
- PATCH
: 리소스의 특정 부분만 수정할 때 사용 (업데이트)
 


5. 사용자가 웹브라우저를 통해 서버에 이미지를 요청해서 사용자에게 보여주기까지의 과정
 
1.www.google.com 에 접속한다.
2. 구글 로고 png의 url이 들어있는 index.html 파일을 받는다
3. 웹브라우저는 html파일을 해석하다가 png의 url이 나오면 해당 url로 요청을 보낼 준비를 한다.
4. 이는 이미지를 요청하기 위한 http 메세지를 만드는 것인데, 바로 get 메서드이자 png를 요청하는 메세지이다.
5. 웹브라우저는 서버와 TCP 커넥션을 맺는다.
( 3 way handshake )
6. 웹브라우저는 서버에 HTTP 요청을 보낸다.
7. 서버는 메세지를 해석하고 요청받은 리소스를 찾아본 후 있으면 응답 메세지를 작성한다.
( 4 way handshake )
8. 서버는 클라이언트와 TCP 커넥션을 맺는다.
9. 서버는 클라이언트에게 HTTP 응답을 보낸다.
10. 웹브라우저가 사용자에게 이미지를 보여준다.
 


6. TCP 연결을 설정 및 해제하는 데 사용 
 
3 way handshake
: 연결 설정
1. syn 
2. ack-syn
3. ack
 
4 way handshake
: 연결 해제
1. fin
2. ack
3. fin
4. ack


7. url에 www.example.com  을 쳤을 때 일어나는 일을 설명하시오
( 브라우저에 url을 입력했을 때 발생하는 일 )
 
1. 브라우저가 기본적인 url 구조를 해석
: https(프로토콜)://www.daum.net(url):443(포트)
 
포트 - 브라우저에서 설정된 기본값을 이용해 요청. ex) HTTP- 80포트
 
 
2. URL을 IP주소로 변환.
(1. 브라우저가 자신의 로컬 공간 확인 2. 없으면 DNS(domain name system)서버에 요청하여 변환
 
3. 라우터를 통해 해당 서버의 게이트웨이까지 이동
 
4. ARP를 통해 IP주소를 MAC주소로 변환
 
5. 대상 서버로 TCP 소켓 연결
 
6. HTTP(or https) 프로토콜로 소통
 
7. 서버에게 url 요청 - 있으면 전송해줌
 
8. 브라우저에서 받은 응답( css, jacascript 등으로 된 코드)을 해석하여 보여줌
 
 


 
8. DNS에 대해서 설명하시오.
 
: domain name system
 
사람이 이해할 수 있는 domain 이름을 컴퓨터가 이해할 수 있는 ip주소로 변환해주는 시스템


 
9. OSI 7 LAYER 에 대해서 설명하시오.

  1.  물리적 계층
  2. 데이터링크 계층
  3. 네트워크 계층
  4. 전송 계층
  5. 세션 계층 : 양 끝단의 통신 세션을 설정하며 데이터 교환을 관리함.
  6. 표현 계층 : 데이터 표현 방식, 암호화 해제같은 데이터 변환 수행
  7. 애플리케이션 계층

 
10. HTTP 응답코드에 대해서 설명하시오.
 
 
: 웹 서버가 클라이언트에게 보내는 상태 코드. ( 세 자리 숫자로 표현됨. )

 

ex)

4xx : 클라이언트 오류

5xx : 서버 오류  

 


 
 
11. WEB으로 SERVER PUSH를 구현할 때의 제약사항 
 
1. HTTPS 2.0에서만 기능
2. 보안성 문제
3. 브라우저 호환성 등
 
 


 
12. 쿠키와 세션

- 쿠키와 세션은 사용자의 웹 사이트 방문 정보를 저장하기 위해 사용되는 기술 !

 
- HTTP 프로토콜은 일반적으로 통신이 끝나면 연결이 끊기고(비연결지향), 상태 정보를 유지하지 않는다. 하지만, 실제로는 데이터를 유지해야 하는 경우가 필요하다. 따라서 상태 정보를 기억하기 위해 쿠키와 세션을 사용한다.
 
쿠키 : 클라이언트에서 관리 , 보안적인 측면에서 좋지 않음 , 브라우저가 종료되어도 남아있을 수 있음.

ex )  사용자가 쇼핑몰에서 제품을 보고 있을 때, 해당 사이트는 사용자가 관심을 보인 제품들을 쿠키에 저장할 수 있다. 사용자가 사이트를 나갔다가 다시 방문했을 때, 사이트는 쿠키를 통해 사용자가 관심 있어 했던 제품을 추천할 수 있다.


세션 : 서버에서 관리 , 쿠키에 비해 보안이 좋음 , 브라우저가 종료되면 자동 삭제

ex )  사용자가 어떤 온라인 포럼에 로그인하면, 서버는 사용자의 로그인 정보(예: 사용자명, 로그인 시간 등)를 세션에 저장한다. 사용자가 다른 페이지로 이동하거나 글을 작성할 때, 서버는 세션 ID를 통해 사용자의 로그인 상태와 권한을 확인할 수 있다.
 


 
 
13. 흐름 제어 방식 / 혼잡 제어 방식
: 네트워크 통신에서 발생할 수 있는 문제들을 해결하는 메커니즘
 
1. 흐름 제어 방식
- 데이터 전송 속도를 조절하여 수신자의 처리 능력을 초과하지 않도록 하는 메커니즘
( 수신자가 송신자에게 가능한 전송 속도를 알림 )
 
2. 혼잡 제어 방식
: 네트워크 상태를 감지하여 네트워크 트래픽 적절히 조절
 


 
14. session 인증 방식과 token 인증 방식의 차이점


1. 세션 인증 방식
- 서버 측에서 세션 관리
 
2. 토큰 인증 방식
- 서버가 인증 토큰을 발급하여 클라이언트에게 주면 그걸로 인증
- 서버의 부하 방지 가능