기술 면접 질문 리스트
- GET, POST 방식의 차이점에 대해서 설명해주세요.
- GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요.
- 쿠키, 세션, 웹스토리지의 차이에 대해 설명해주세요.
1. GET, POST 방식의 차이점에 대해서 설명해주세요.
답변:
GET은 http 요청 시 데이터를 URL의 요청 파라미터로 전송합니다. 이로 인해 민감한 정보를 포함하는 것을 지양해야 합니다. 리소스에 대한 읽기를 수행하는 요청 메서드이며, 멱등성을 보장하는데 이는 항상 동일한 요청에 대한 동일한 응답을 반환한다는 의미입니다. 이러한 특성으로 인해 응답 데이터의 캐싱이 가능해 서버로 요청하지 않고 캐시를 사용합니다. POST는 요쳥 데이터를 본문에 담아 전송합니다. 요청을 탈취당하지 않는 한 비교적 안전하게 데이터를 전송할 수 있습니다. 리소스의 생성 동작을 수행하는 요청 메서드임으로 요청마다 다른 응답을 반환하게 되어 멱등성이 보장되지 않습니다.
2. GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요.
답변:
GET
1. 클라이언트에서 데이터를 URL의 요청 파라미터에 담아 서버로 전송합니다.
2. 서버는 요청 메시지를 분석 후 조회 데이터를 응답합니다.
POST
1. 클라이언트 측에서 데이터를 요청 본문에 담아 서버로 전송합니다.
2. 서버는 요청 본문을 해석하고 데이터를 생성 후 응답합니다.
3. 쿠키, 세션, 웹스토리지의 차이에 대해 설명해주세요.
답변:
http는 요청에 대한 응답을 보낸 후 연결을 유지하지 않고, 클라이언트로 부터 전발받은 상태를 저장하지 않으므로 과거의 클라이언트에 대한 정보를 갖고있지 않아 클라이언트의 식별이 불가능하다. 이러한 점으로 인해 브라우저의 쿠키, 세션, 웹 브라우저를 통해 사용자 인증을 유지할 수 있다.
쿠키는 http 헤더 기반 메커니즘을 따르며 클라이언트 브라우저에 저장됩니다. 최대 4kb바이트의 데이터를 저장할 수 있고, 요청 시마다 요청 헤더에 자동으로 담겨 전송됩니다. 만료 시간에 따라 브라우저를 종료해도 유지되며, 민감한 정보가 클라이언트 로컬에 저장되므로 탈취, 변조등 보안에 취약합니다.
세션은 민감한 정보를 서버측에서 관리합니다. 세션 ID를 응답 헤더 쿠키에 담아 전송하고 이후 요청 시 세션 ID만으로 클라이언트를 식별하므로 비교적 보안성이 좋습니다. 쿠키 기반이므로 만료 기간을 설정할 수 있지만, 미설정했을 경우 브라우저를 종료하면 삭제됩니다.
클라이언트 데이터를 저장할 수 있는 데이터 저장소로 key-value 쌍으로 저장되며 5MB 이상의 비교적 큰 용량의 데이터를 저장할 수 있습니다. 쿠키와 다르게 헤더 기반 메커니즘을 따르지 않으므로 요청 헤더에 자동으로 담기지 않습니다. 데이터 포멧은 문자열로 저장되며 자바스크립트 내부에서 사용시 JSON.parse를 이용해 파싱을 수행합니다. 스토리지는 2가지로 나뉘는데 로컬, 세션 스토리지가 존재합니다.
각 특징으로 로컬 스토리지는 동일 오리진간에 저장 데이터가 공유되며 영구적인 보관이 가능하고, 세션 스토리지는 오리진 뿐만 아니라 브라우저 탭 개별적으로 세션 스토리지를 소유하고 탭을 종료할 경우 데이터가 삭제됩니다.
'면접준비' 카테고리의 다른 글
3/14 취준 기록 - 8일차 (0) | 2024.03.15 |
---|---|
3/11 취준 기록 - 7일차 (0) | 2024.03.13 |
항해99 취업 리부트 코스 후기 (2) | 2024.03.10 |
3/8 취준 기록 - 5일차 (0) | 2024.03.08 |
3/7 취준 기록 - 4일차 (0) | 2024.03.07 |