- 세션 방식의 로그인 과정에 대해 설명해 주세요.
- HTTP의 특성인 Stateless에 대해 설명해 주세요.
- Stateless의 의미를 살펴보면, 세션은 적절하지 않은 인증 방법 아닌가요?
- 규모가 커져 서버가 여러 개가 된다면, 세션을 어떻게 관리할 수 있을까요?
- 401 (Unauthorized) 와 403 (Forbidden)은 의미적으로 어떤 차이가 있나요?
- 200 (ok) 와 201 (created) 의 차이에 대해 설명해 주세요.
- 필요하다면 저희가 직접 응답코드를 정의해서 사용할 수 있을까요? 예를 들어 285번 처럼요.
- HTTP Method의 멱등성에 대해 설명해 주세요.
- GET과 POST의 차이는 무엇인가요?
- POST와 PUT, PATCH의 차이는 무엇인가요?
- HTTP 1.1 이후로, GET에도 Body에 데이터를 실을 수 있게 되었습니다. 그럼에도 불구하고 왜 아직도 이런 방식을 지양하는 것일까요?
- 공개키와 대칭키에 대해 설명해 주세요.
- 왜 HTTPS Handshake 과정에서는 인증서를 사용하는 것 일까요?
- SSL과 TLS의 차이는 무엇인가요?
- 소켓과 포트의 차이가 무엇인가요?
- 여러 소켓이 있다고 할 때, 그 소켓의 포트 번호는 모두 다른가요?
- 사용자의 요청이 무수히 많아지면, 소켓도 무수히 생성되나요?
- Checksum이 무엇인가요?
- TCP와 UDP 중 어느 프로토콜이 Checksum을 수행할까요?
- 그렇다면, Checksum을 통해 오류를 정정할 수 있나요?
- TCP가 신뢰성을 보장하는 방법에 대해 설명해 주세요.
- TCP의 혼잡 제어 처리 방법에 대해 설명해 주세요.
- 왜 HTTP는 TCP를 사용하나요?
- 그렇다면, 왜 HTTP/3 에서는 UDP를 사용하나요? 위에서 언급한 UDP의 문제가 해결되었나요?
- 그런데, 브라우저는 어떤 서버가 TCP를 쓰는지 UDP를 쓰는지 어떻게 알 수 있나요?
- 본인이 새로운 통신 프로토콜을 TCP나 UDP를 사용해서 구현한다고 하면, 어떤 기준으로 프로토콜을 선택하시겠어요?
- DHCP는 몇 계층 프로토콜인가요?
- DHCP는 어떻게 동작하나요?
- DHCP에서 UDP를 사용하는 이유가 무엇인가요?
- DHCP에서, IP 주소 말고 추가로 제공해주는 정보가 있나요?
- DHCP의 유효기간은 얼마나 긴가요?
- IPv6는 IPv4의 주소 고갈 문제를 해결하기 위해 만들어졌지만, 아직도 수많은 기기가 IPv4를 사용하고 있습니다. 고갈 문제를 어떻게 해결할 수 있을까요?
- IPv4와 IPv6의 차이에 대해 설명해 주세요.
- 수많은 사람들이 유동 IP를 사용하고 있지만, 수많은 공유기에서는 고정 주소를 제공하는 기능이 이미 존재합니다. 어떻게 가능한 걸까요?
- IPv4를 사용하는 장비와 IPv6를 사용하는 같은 네트워크 내에서 통신이 가능한가요? 가능하다면 어떤 방법을 사용하나요?
- IP가 송신자와 수신자를 정확하게 전송되는 것을 보장해 주나요?
- IPv4에서 수행하는 Checksum과 TCP에서 수행하는 Checksum은 어떤 차이가 있나요?
- TTL(Hop Limit)이란 무엇인가요?
- IP 주소와 MAC 주소의 차이에 대해 설명해 주세요.
- Transport Layer와, Network Layer의 차이에 대해 설명해 주세요.
- L3 Switch와 Router의 차이에 대해 설명해 주세요.
- 각 Layer는 패킷을 어떻게 명칭하나요? 예를 들어, Transport Layer의 경우 Segment라 부릅니다.
- 각각의 Header의 Packing Order에 대해 설명해 주세요.
- ARP에 대해 설명해 주세요.
- ACK, SYN 같은 정보는 어떻게 전달하는 것 일까요?
- 2-Way Handshaking 를 하지않는 이유에 대해 설명해 주세요.
- 두 호스트가 동시에 연결을 시도하면, 연결이 가능한가요? 가능하다면 어떻게 통신 연결을 수행하나요?
- SYN Flooding 에 대해 설명해 주세요.
- 위 질문과 모순될 수 있지만, 3-Way Handshake의 속도 문제 때문에 이동 수를 줄이는 0-RTT 기법을 많이 적용하고 있습니다. 어떤 방식으로 가능한 걸까요?
- 패킷이 4-way handshake 목적인지 어떻게 파악할 수 있을까요?
- 빨리 끊어야 할 경우엔, (즉, 4-way Handshake를 할 여유가 없다면) 어떻게 종료할 수 있을까요?
- 4-Way Handshake 과정에서 중간에 한쪽 네트워크가 강제로 종료된다면, 반대쪽은 이를 어떻게 인식할 수 있을까요?
- 왜 종료 후에 바로 끝나지 않고, TIME_WAIT 상태로 대기하는 것 일까요?
13. www.github.com을 브라우저에 입력하고 엔터를 쳤을 때, 네트워크 상 어떤 일이 일어나는지 최대한 자세하게 설명해 주세요.
13. www.github.com을 브라우저에 입력하고 엔터를 쳤을 때, 네트워크 상 어떤 일이 일어나는지 최대한 자세하게 설명해 주세요.
- DNS 쿼리를 통해 얻어진 IP는 어디를 가리키고 있나요?
- Web Server와 Web Application Server의 차이에 대해 설명해 주세요.
- URL, URI, URN은 어떤 차이가 있나요?
- DNS는 몇 계층 프로토콜인가요?
- UDP와 TCP 중 어떤 것을 사용하나요?
- DNS Recursive Query, Iterative Query가 무엇인가요?
- DNS 쿼리 과정에서 손실이 발생한다면, 어떻게 처리하나요?
- 캐싱된 DNS 쿼리가 잘못 될 수도 있습니다. 이 경우, 어떻게 에러를 보정할 수 있나요?
- DNS 레코드 타입 중 A, CNAME, AAAA의 차이에 대해서 설명해주세요.
- hosts 파일은 어떤 역할을 하나요? DNS와 비교하였을 때 어떤 것이 우선순위가 더 높나요?
- 왜 HTTP는 Stateless 구조를 채택하고 있을까요?
- Connectionless의 논리대로면 성능이 되게 좋지 않을 것으로 보이는데, 해결 방법이 있을까요?
- TCP의 keep-alive와 HTTP의 keep-alive의 차이는 무엇인가요?
- L4 로드밸런서와, L7 로드밸런서의 차이에 대해 설명해 주세요.
- 로드밸런서 알고리즘에 대해 설명해 주세요.
- 로드밸런싱 대상이 되는 장치중 일부 장치가 문제가 생겨 접속이 불가능하다고 가정해 봅시다. 이 경우, 로드밸런서가 해당 장비로 요청을 보내지 않도록 하려면 어떻게 해야 할까요?
- 로드밸런서 장치를 사용하지 않고, DNS를 활용해서 유사하게 로드밸런싱을 하는 방법에 대해 설명해 주세요.
- NAT에 대해 설명해 주세요.
- 서브넷 마스크의 표현 방식에 대해 설명해 주세요.
- 그렇다면, 255.0.255.0 같은 꼴의 서브넷 마스크도 가능한가요?