티스토리 뷰

1. HTTP METHOD PUT vs PATCH


PUT은 요청된 자원을 수정할 때, 자원내 필드를 전체 수정할 때 사용 (만약 일부만 전달할 경우, 그외 필드들은 NULL or 초기값 처리)

 - 예 : 필드에 name, age, height가 존재할 때, 'name=DOBY'만 전달할 경우, age와 height는 0으로 초기화


PATCH는 요청된 자원을 수정할 때, 자원내 필드를 일부 수정할 때 사용


참고로 HEAD는 GET 방식과 동일하지만, BODY가 존재하지 않음. 웹 서버 정보확인, 버전확인, 최종 수정일자 확인을 위한 용도


2. HTTP METHOD GET vs POST


GET은 Http Request Message의 Header 부분의 URL에 담겨서 전송되며, BODY는 비어있는 상태 URL에 ?뒤에 데이터를 가져오기 위한 조건이 포함되어 있다.

URL에 조건이 포함되었기 때문에 데이터의 제한이 존재하며, URL에 노출되기 때문에 보안의 위험존재. 


POST는 Http Request Message의 BODY 부분에 클라이언트의 요청을 처리하기 위한 데이터가 존재. URL에 노출되지 않기 때문에 보안의 위험이 존재하지 

않으며, 보내는 데이터의 제한이 없음


GET과 POST를 상황에 따라 써야하는 이유는, GET 요청은 캐싱이 된다. 그뜻은 웹 서버에 요청이 전달되지 않고, 캐시에서 데이터를 전달해준다는 것이다.

만약 글작성을 GET으로 처리한다면, 똑같은 요청을 처리했을 때, 캐싱으로 인해 두번째부터의 동일한 글작성은 서버에 전달되지 않고 첫번째 캐싱된 결과를

계속 전달받을 수 있기 때문에 METHOD를 명확하게 구분해서 써야한다. 


3. TCP vs UDP


TCP는 연결지향, 신뢰성있는 데이터 전송, 흐름제어, 혼잡제어의 특징을 가지고 있다.


연결지향

 - 먼저, 송신 호스트와 수신 호스트 사이에 통신을 수행하기 전에 연결 설정이 반드시 필요하다. (연결 설정 → 데이터 전송 → 연결해제)


신뢰성있는 데이터 전송

 - ACK : 송신 호스트의 메세지를 정상적으로 수신했을 때, 수신 호스트가 전달하는 메세지로 ACK 메세지를 받아야만 다음 데이터 전송이 가능하다.

   ACK 메세지를 받지 못하면, 다시 재전송을 함으로써 신뢰성 보장

 - 타이머 : 송신 호스트가 수신 호스트에게 데이터를 보내는 순간, 타이머가 동작하며, 타이머 내 ACK를 수신하지 못하면 데이터가 손실되었다고 판단하고

   다시 재전송을 함으로써 신뢰성 보장

 - 순서번호 : 세그먼트를 각각 나눠서 전송하기 때문에 세그먼트의 순서를 보장하기 위한 번호


흐름제어

 - 수신자 호스트의 수신능력 이상으로 데이터를 전송하지 않음으로써 데이터의 손실을 방지한다. 


혼잡제어

 - 수신자의 버퍼의 크기는 여유가 있지만, 네트워크 상태가 혼잡하여 데이터가 손실되는 것을 방지한다.


UDP는 비연결형, 비신뢰성의 데이터 전송의 특징을 가지고 있다. 데이터 손실을 허용하는 멀티미디어 전송에 사용된다.

UDP는 멀티캐스팅, 브로드캐스팅을 위한 프로토콜에 적합하다. (TCP는 1 : 1) 


'면접 질문' 카테고리의 다른 글

[면접준비] MVC Model1, Model2  (0) 2019.03.16
[면접준비] 멀티스레드  (0) 2019.03.16
[면접준비] AWS  (0) 2019.03.10
[면접준비] 함수형 프로그래밍  (0) 2019.03.10
[면접준비] HTTP, HTTPS, SSL  (0) 2019.03.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함