본문 바로가기
📔개발자 일기 | | TIL

[20220406] 개발자 일기 & TIL

by 캔 2022. 4. 6.

한동안 여유로웠는데 수정사항 + 유지보수 건이 다시 들어왔다. 원래는 어제에 이어서 strapi 공부를 좀 하고 사내 노션 작성을 해보려고 했었는데 별로 하지는 못했고, 수정사항만 조금 보다가 끝났다. 내일부터 들어온 업무들 차례로 처리해야 할 거 같다. 노션 정리는 전부터 조금씩 해왔었고 새로 입사하는 분이나 사내 CMS에 대한 이해를 높이기 위해서 공부도 할 겸 작성했는데 좀 더 깔끔하고 완성도를 높여보려고 하고 있다. 이 부분이 완성되고 나서야 회의에서 나왔던 사내 기술 블로그 도입 단계로 넘어갈 수 있지 않을까 싶다.

 

TIL

HTTP의 요청과 응답 header

HTTP의 요청과 응답은 startline, headers, body로 구성된다. 이중에 headers의 구성요소 중 몰랐던 부분만 간략히 설명하면 다음과 같다.

 

요청:

accept - 해당 요청이 받을 수 있는 타입

connection - 해당 요청이 끝난 후에 클라이언트와 서버의 연결, 즉 커넥션을 유지할지 말에 대한 것.

content-length - body의 길이

pragma - cache-control의 레거시(요청에만 있던 헤더)

cache-control - 캐싱 메커니즘 관련 설정들 또는 디렉티브.

 

session의 개념

세션은 로그인 등에 활용하기 위해 서버에 일시적으로 생성하는 객체이다. 필자가 이해하기로는 모든 세션은 sessionId를 가진다. 근데 sessionId는 쿠키로 전송한다. 클라이언트와 서버와의 통신 과정에서 세션이 어떻게 생성할까?

 

 웹사이트에 처음 접속한 사용자(클라이언트)는 sessionID가 없다. 그러므로 빈 쿠키를 요청 헤더에 실어서 서버에 보낸다. 서버는 sessionId가 없으므로 새로운 sessionId를 쿠키로 전달한다. 이제 클라이언트의 쿠키에는 sessionId가 존재한다. 그래서 웹사이트에 접속한 클라이언트는 모두 sessionId를 갖고 있게 된다. 이제 사용자가 서버에 로그인을 하게 되면(아이디와 비밀번호가 일치하여 로그인 상태가 될 때) 새로운 sessionId를 부여하고 HttpSession 객체를 생성한다. 그리고 HttpSession 객체에 attribute(예를 들어, id 등 로그인 관련 객체)를 추가한다. 이제 이 sessionId를 생성한 클라이언트가 요청을 보내면 해당 HttpSession을 찾아서 session 내에 추가했던 attribute가 있는지 확인한다. 만약 로그아웃할 경우에는 session을 invalidate하여 만료시킨다. 또한, 일정 시간이 지나면 session을 만료시킨다.

'📔개발자 일기 | | TIL' 카테고리의 다른 글

[20220411] 개발자 일기 &TIL  (0) 2022.04.11
[20220407] 개발자 일기 & TIL  (0) 2022.04.07
[20220405] 개발자일기 & TIL  (0) 2022.04.05
[20220404] 개발자 일기  (0) 2022.04.04
[2022401] 개발자 일기 & TIL  (0) 2022.04.01