웹 어플리케이션 이해

BRINCE·2022년 9월 30일
0

스프링 스터디

목록 보기
4/10

22-09-30

계산기 프로그램 웹 어플리케이션으로 만들기

  • Step1 사용자가 요청을 메인 Thread 로 처리하게 한다. (성능이 굉장히 안좋다.)
  • Step2 요청이 들어올때마다 스레드를 새로 생성해서 처리하게 한다. (사용자가 많으면 서버가 다운될 수도 있다. // new Thread
  • Step3 Thread Pool 을 적용해 안정적인 서비스가 가능하게 한다. (생성할 스레드 갯수를 정해놓고 운용하게 하므로 성능이 가장 좋다.) //Executor Service

HTTP 프로토콜 이해

서버와 클라이언트가 웹에서 데이터를 주고받기 위한 프로토콜(규약)

HTTP/1.1. HTTP/2 는 TCP기반 위에서 동작 (Transmission Control Protocol)

HTTP/3 은 UDP 기반 위에서 동작 (User Datagram Protocol)

HTTP 요청 /응답 메시지 구조

클라이언트 클라이언트

Request Line, Header, Blank Line, Body →

                                  ← Request Line, Header, Blank Line, Body

HTTP 특징

클라이언트 - 서버 모델

무상태 프로토콜 (Stateless)

  • Multiple Connection - 서버와 클라이언트의 연결을 계속 유지하지 않는다. (TCP) 3Way Handshake
  • Persistent Connection - Keep Alive 속성 (특정 시간동안 연결을 계속 유지하면서 데이터를 주고받게 한다.) → 잘못 사용하면 성능 하락의 주범이 된다. (요청이 많아지면 유지되는 커넥션이 많아져 신규 사용자를 못받을 수도 있다.)

비연결성 (ConnectionlesS)

  • 서버가 클라이언트 요청에 대해 응답을 마치면 연결을 끊어버림
  • 해결책 : 쿠키(클라이언트에 정보 저장), 세션 (서버에 정보 저장) ,JWT

왜 HTTP라는 프로토콜은 스테이트리스와 커넥션리스 특징을 가지게 설계되었을까?

HTTP : 웹상에서 기본적으로 불특정다수와 통신하도록 설계된 프로토콜

계속 연결을 유지한다면 리소스 낭비가 심해질것

HTTP 요청 메소드

GET / POST / PUT / DELETE 등

HTTP 응답 코드

2xx(성공) , 3xx(리다이렉션), 4xx(클라이언트 에러), 5xx(서버 에러)

HTTP 헤더

Content-Type , Accept, Cookie, Set-Cookie, Authorization 등

profile
자스코드훔쳐보는변태

0개의 댓글