1. 웹 통신의 순서
    1. 브라우저에서 HTTP Request 생성 요청
    2. Domain Name인 경우 DNS LookUp(IP 주소 찾기)을 수행
    3. ip주소로 Http Request 생성
    4. 프로토콜 스택에 의해 패킷을 생성하고 LAN에서 송출
    5. 허브, 라우터를 경유하여 목적지에 도달
    6. 목적지에서 메시지를 복원한 후(Https인 경우) 응답 데이터 전송
  2. TCP 와 UDP 차이
    1. TCP는 연결 지향형 프로토콜로써 신뢰성을 보장하나 느림
    2. UDP는 데이터그램 단위 전송 프로토콜로써 신뢰성은 낮으나 빠름
  3. Session과 Cookie의 차이점과 사용 용도?
    1. Cookie : 사용자 정보를 유지할 수 없다는 HTTP의 한계를 극복할 수 있는 방법
      1. Cookie는 인터넷 사용자가 특정 웹 서버에 접속할 때 방문한 사이트의 정보를 담은 임시 파일
      2. server가 아닌 Client에 텍스트 파일로 저장된다
      3. Client PC에 저장되는 정보기 때문에, 다른 사용자에 의해서 임의로 변경이 가능하다.
    2. Session : 특정 웹사이트와 사용자 간 연결에 대한 정보를 의미
      1. Server에 저장된다.
      2. 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제 시 사라진다.
      3. 모든 정보를 Session에 저장하면 Server의 메모리를 과도하게 사용하게 되어 Server에 무리가 감.
  4. CGI(common gateway interface) 란?
    1. 웹서버와 프로그램 사이의 데이터를 주고받는 규칙
    2. 느리고 매 연결마다 프로세스를 새로 생성한다
  5. OSI 7계층이 무엇인지 설명해 보세요.
    1. 응용(application) => 응용프로그램. 최종 사용자가 밀접. ex) http
    2. 표현(presentation) => 응용 계층에서 데이터 독립적인 부분. 즉 데이터를 표현
    3. 세션(session) => 2대의 기기를 연결 할 시의 설정,조율,종료와 같은 기능을 담당.
    4. 전송(transmission) => 데이터 전송 조율 담당. 용량,속도, 목적지. ex) tcp/ip
    5. 네트워크(network) => 라우터. 패킷 전달 담당
    6. datalink => MAC. LLC 계층. 두 노드의 간의 데이터 전송 제공
    7. 물리 => 전기적, 물리적 표현 담당. 플러그, 케이블 등이 이 계층
  6. csrf(Cross-site Request Forgery) 란?
    1. 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법을 의미한다.
  7. bom 과 연관된 char set: UTF
  8. encode, decode, escape, unescape 개념
    1. encode: 영문이 아닌 한글을 URL 표현식 형태로 변환.
    2. decode: encode 된 문장을 원래 언어로 변환.
    3. escapse: 특수문자, 즉 html 파일에서 제거되는 문자열을 치환.
    4. unescape: escapse된 문자를 원래 문자로 변환.
  9. 쿠키, localstorage, sessionStorage 차이
    1. 쿠키 : 만료기한이 존재하는 k-v 저장소. 4kb
    2. local : 사용자가 삭제하기 전까지는 영구한 k-v 저장소. 2.5mb
    3. session : 윈도우 또는 브라우져 탭을 닫을경우 삭제되는 k-v 저장소. 2.5mb
    4. indexedDb : 50mb 사용가능한 공간
  10. jsonp: json with padding → 이제는 cors로 대체됨.
  11. cors(cross orign resource sharing)
    1. 같은 도메인 내에서만 통신이 가능한 HTTP 브라우저의 한계를 넘기 위함
    2. Simple/Preflight, Credential/Non-Credential 방식을 통한 4가지 조합 존재.
  12. domain vs subdomain
    1. domain : google.com
    2. subdomain : www. google.com 에서 www
  13. http 데이터 전송 중 압축에 관해 설명하시오.
    1. Accept-Encoding : client 보냄
    2. Content-Encoding : server 응답
    3. 데이터가 너무 큰 경우 압축해서 응답 속도 향상시킴. 다만 html,xml,script 등에 적합
  14. SSL 핸드세이크란?
    1. SSL 연결을 위한 과정
    2. TCP 핸드쉐이킹 후에 클라이언트가 hello 메시지 전송
    3. 서버에서 인증서를 보냄
    4. 클라이언트에서 인증서를 검증
    5. 클라이언트가 서버의 공개키로 비밀키를 암호화하여 서버에 전송
    6. 서버는 개인키로 확인한 후 양자간 공유된 비밀키를 이용하여 통신
  15. tcp 3way handshaking, graceful shutdown이란(C= client, S = server)
    1. 연결 : syn_sent(C) -> syn_RECV(S) -> established(C)-> established(S)
    2. 종료 : FIN_WAIT1(C) -> Close_WAIT(S)-> FIN_WAIT_2(C) → 대기 → LAST_ACK(S) -> TIME_WAIT(C) -> Closed(S)
  16. http cache와 연관 된 헤더에 대해 설명하시오.
    1. Pragma, Expires, Cache-Control
  17. ftp에서 active 모드와 passive 모드 설명
    1. active : 서버가 클라이언트의 데이터 포트에 접속해서 데이터를 전송.
    2. passive : 서버가 클라이언트에게 데이터 포트 주소를 알려주어 접속하게 하여 데이터를 전송.
  18. proxy란?
    1. 네트워크 간의 중간 매개체 형태로 존재하는 서버 또는 네트워크.
  19. ip spoofing
    1. 스푸핑은 속임을 이용한 공격(해킹)을 총칭한다.
  20. hosts 파일 용도
    1. DNS를 통해서 IP를 구하기 전에 먼저 검색하는 URL 주소록