。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

[네이버클라우드] 클라우드 기반의 개발자 과정 7기/웹프로그래밍

[NC7기-71일차(8월3일)] - 웹프로그래밍 52일차

quarrrter 2023. 8. 3. 15:39

https://www.favicon-generator.org/

 

Favicon & App Icon Generator

Upload an image (PNG to ICO, JPG to ICO, GIF to ICO) and convert it to a Windows favicon (.ico) and App Icons. Learn more about favicons.

www.favicon-generator.org

파비콘 제작 

 

디스패쳐에서 html 끌어오는거 serverapp으로 옮김 

디스패쳐 수정 

 

 

HTTP client와 Session 

통신방식

Connection-oriented 방식
TCP: 연결후 통신
예> telnet, http, smtp
*stateful 방식 (telnet, FTP)
연결-요청-응답(반복) -끊기
*stateless 방식 (http)
연결 - 요청- 응답 - 끊기   (1번만)
Connetionless 방식
UDP 연결없이 통신
예> ping, broadcasting(streaming 방송)
 

 

HTTP 통신:

stateless 방식으로 동작한다.

요청할때마다 새로 연결한다. 

요청을 처리하는 스레드가 다를 수 있다.

요청과 요청 사이에 데이터를 공유할 수 없다. - > 스레드에 보관해봐야 소용없고, http servlet request에 보관해도 소용없다.

 

HTTP client와 Session 1. 쿠키를 이용하여 클라이언트 구분하기

쿠키 : 서버에서 클라이언트에 보관시키는 key=value값

클라이언트는 서버에 요청할 때마다 서버로부터 받은 쿠키값을 요청ㅎㅔ더("cookie") 에 첨부하여 보다. 

서버에서 세션 ID를 보밸 때 응답헤더에 첨부해서 보낸다. =setcookie

세션 iD를 갖고있는 클라이언트에 응답할 때는 세션ID를 또 보내지 않는다. 

    try {
      // 클라이언트 세션 ID 알아내기
      String sessionId = null;
      boolean firstVisit = false;

      //클라이언트가 보낸 쿠키들 중에서 세션ID가 있는지 확인한다. 
      List<Cookie> cookies = request2.allCookies().get(MYAAPP_SESSION_ID);
      if (cookies.size() > 0) {
        // 세션ID가 있으면 이 값을 가지고 클라이언트를 구분한다.
        sessionId = cookies.get(0).value();
      } else {
        // 세션ID가 없으면 이 클라이언트를 구분하기 위해 새 세션ID를 발급한다. 
        sessionId = UUID.randomUUID().toString();
        firstVisit = true;
      }

      if (firstVisit) {
        // 세션ID가 없는 클라라이언트를 위해 새로 발급한 세션ID를 쿠키로 보낸다.
        // 웹브라우저는 이 값을 내부 메모리에 저장할 것이다. 
        response.addCookie(new DefaultCookie(MYAAPP_SESSION_ID, sessionId));
      }

 

HTTP client와 Cookie

Cookie: HTTP 서버가 http 클라이언트에 key-value 형태로 보관시키는 값 

=> HTTP 클라이언트는 요청할 때 마다 쿠키를 받은 서버로 다시 전달한다. 

 

HTTP client와 Session  2. 같은 클라이언트의 요청들 사이에서 데이터 공유하기

util - HttpSession 클래스 추가 , 서버앱 수정 

HttpSession  : // 클라이언트 당 한 개가 배정되는 보관소  - 클라이언트 요청 간에 데이터를 공유할 때 사용한다.  - 클라이언트 세션 ID로 구분한다.

HttpServletRequest- 에 session 관련 메서드 두개 추가 setSession  getSession

loginServlet 수정 보드add수정, 자동 로그인하는거 문구 삭제 

 

HTTP 요청 방식 

GET 요청 vs post요청 

1. GET 요청 : 데이터 조회 

 

2. POST 요청: 데이터 생성, 변경 (REST에서는 PUT요청 사용)

 

순수하게 보내고자하 날 데이터

표붙이기