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