기술면접 5. 네트워크

Ethereal·2022년 1월 18일
0

기술면접

목록 보기
5/5

쿠키? 세션?

HTTP 프로토콜의 서버-클라 간의 데이터 유지가 되지 않는 문제를 해결하기위한 방식.

쿠키 세션에 대해 잘 정리된 글:
https://interconnection.tistory.com/74

쿠키 : 클라이언트가 보관
세션 : 서버가 보관


websocket 이란

웹소켓은 양방향, 실시간 통신을 위해 나온 transport protocol이다.

초기에 http protocol을 이용해 연결을 진행한 후 부터는 websocket만의 독자적인 프로토콜 (TCP/IP기반)을 사용한다.

HTTP는 통신 제약이 있는 약속입니다.
AJAX로 HTTP의 통신 제약으로부터 조금 벗어날 수 있었습니다.
Websocket은 HTTP의 통신 제약을 해결한 새로운 약속입니다.

잘 정리된 글들:
https://duckdevelope.tistory.com/19
https://choseongho93.tistory.com/266
https://hahahoho5915.tistory.com/32

웹소켓 디테일 :

https://kyleyj.tistory.com/59


HTTP의 GET과 POST 비교?

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network#http%EC%99%80-https

둘 다 HTTP 프로토콜을 이용해서 서버에 무엇인가를 요청할 때 사용하는 방식이다. 하지만 둘의 특징을 제대로 이해하여 기술의 목적에 맞게 알맞은 용도에 사용해야한다.

GET

우선 GET 방식은 요청하는 데이터가 HTTP Request Message의 Header 부분에 url 이 담겨서 전송된다. 때문에 url 상에 ? 뒤에 데이터가 붙어 request 를 보내게 되는 것이다. 이러한 방식은 url 이라는 공간에 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다. 또 보안이 필요한 데이터에 대해서는 데이터가 그대로 url 에 노출되므로 GET방식은 적절하지 않다. (ex. password)

POST

POST 방식의 request 는 HTTP Request Message의 Body 부분에 데이터가 담겨서 전송된다. 때문에 바이너리 데이터를 요청하는 경우 POST 방식으로 보내야 하는 것처럼 데이터 크기가 GET 방식보다 크고 보안면에서 낫다.(하지만 보안적인 측면에서는 암호화를 하지 않는 이상 고만고만하다.)

그렇다면 이러한 특성을 이해한 뒤에는 어디에 적용되는지를 알아봐야 그 차이를 극명하게 이해할 수 있다. 우선 GET 은 가져오는 것이다. 서버에서 어떤 데이터를 가져와서 보여준다거나 하는 용도이지 서버의 값이나 상태 등을 변경하지 않는다. SELECT 적인 성향을 갖고 있다고 볼 수 있는 것이다. 반면에 POST 는 서버의 값이나 상태를 변경하기 위해서 또는 추가하기 위해서 사용된다.

부수적인 차이점을 좀 더 살펴보자면 GET 방식의 요청은 브라우저에서 Caching 할 수 있다. 때문에 POST 방식으로 요청해야 할 것을 보내는 데이터의 크기가 작고 보안적인 문제가 없다는 이유로 GET 방식으로 요청한다면 기존에 caching 되었던 데이터가 응답될 가능성이 존재한다. 때문에 목적에 맞는 기술을 사용해야 하는 것이다.

profile
꿈에다가 우리들의 돛을 달고 앞으로 다가올 그 날을 위해 밤을 지나자

0개의 댓글