[Spring]WAS(Web Application Server)

2024. 1. 9. 11:43· 공부/Spring
목차
  1. Response Message
  2. 상황별 Request Method
  3. Web Application Server
반응형

프로토콜 : 정해진 규약 혹은 약속

HTTP 프로토콜

  • 통신 규약(프로토콜, Protocol) : 네트워크 상에서 복수의 컴퓨터(앱) 사이에서 데이터를 통신하기 위한 약속
  • HTTP(Hypertext Transfer Protocol)
    • 서버 - 클라이언트 간의 통신 규약
    • 클라이언트가 요청하면(Request) 서버가 데이터를 응답한다(Response)
    Untitled.png

Request, Response의 규약만 준수한다면 Server, Client는 어떠한 코드로 작성되던지 HTTP 프로토콜을 만족하는 것이다.

  • 서버 주소
    • 서버의 주소는 http:// 로 시작한다.
      • 도메인 이름 ( .com, .net 등) 또는 ip 주소를 사용한다.
    • Default 포트 번호는 80번 이다.
  • 예
http://hello.com # http 프로토콜을 지원하는 서버로 포트번호는 80번을 사용한다.
http://hello.com:3000 # http 프로토콜을 지원하는 서버로 포트번호는 3000번을 사용한다
http://10.0.121.123  # http 프로토콜을 지원하는 서버로 ip 주소를 사용했으며 포트 번호는 80을 사용함
  • 통신의 특징
    • 클라이언트가 요청을 보내면 서버는 응답하고 연결이 종료된다.
    • 로그인 등의 처리를 위해서는 별도의 방법이 필요하다. → 서버의 입장에서는 요청이 들어오면 매번 새로운 사용자로 인식한다는 의미 로그인을 유지하기 위해 어떠한 스킬로 유지를 하여야함 (예 : 쿠키, 세션 등)
  • 요청(Request)과 응답(Response)의 구조
    • 기본적으로 head, body를 가진다.
  • Request
    • Method : GET, POST, PUT, PATCH, DELETE 등 요청의 의도
    • Request Target : /users , /logs 등의 목표 주소
    • Body : 서버로 전송하는 데이터 (회원 가입, 게시글 등록 등의 상황)
  • Response
    • Status : 200 = OK, 404 = Not found 등
    • Body : 요청한 데이터 전송 (html, json, xml, 파일 등)

Response Message

HTTP Response Message는 request와 동일하게 공백(blank line)을 제외하고 3가지 부분으로 나누어진다.

  • Status Line
  • Headers
  • Body

Untitled.png

HTTP Response Message

  • Status Line
    • HTTP Response의 상태를 간략하게 나타내주는 부분
HTTP/1.1 200 OK
[HTTP version] [Status Code] [Status Text]
  • headers
    • Request의 headers와 동일하다. 다만 response에서만 사용되는 header 값들이 있다. 예를 들어, User-Agent 대신에 Server 헤더가 사용된다.
  • body
    • Response의 body와 일반적으로 동일하다. Request와 마찬가지로 모든 response가 body가 있지는 않다.
    • 데이터를 전송할 필요가 없을 경우 body가 비어있게 된다.

상황별 Request Method

HTTPS 프로토콜

  • Hypertext Transfer Protocol Secure : HTTP 프로토콜에 보안이 더해진 것
    • 기본포트 443
    • https:// 로 주소가 시작된다.
  • 클라이언트와 서버간의 통신 내용이 암호화되어 전달된다.
  • 서버는 인증서가 필요하다.
    • 공인된 발급처에서 인증서를 받은 경우 주소 앞쪽에 자물쇠 표지가 나온다.
    Untitled.png

RESTful API

  • 기존의 서버
    • 물리적인 폴더와 물리적인 파일 이름을 이용해 서비스나 파일을 요청
    • 주로 GET/POST method 사용
  • http://hello.com/users/user.jsp 서버의 users 폴더 안에 있는 user.jsp 파일을 주세요.
  • REST
    • 폴더나 파일 이름이 아닌 리소스를 대상으로 하며 Method를 이용해 서버에게 의도를 알림
    • 이러한 규칙을 제공하는 서버를 RESTful API, RESTful server 등으로 부
  • http://hello.com/users/ GET - 서버가 가진 사용자 목록을 조회 POST - 서버가 가진 사용자 목록에 신규 사용자 등록
  • 주소를 정의하는 규칙 : 절대적인 규칙은 아니지만 대부분이 따르는 방법
    • 주소 + Method로 의도를 전한다.
    • 주소 부분에는 Key에 해당하는 정보를, 그 외 검색이나 정렬 등은 Query String으로

{id} 는 가변이다, 바뀔수 있는 값

Web Server, Web Application Server

  • http/https 요청에 대하여 정적인 응답을 보내면 Web Server
    • Nginx, Apache 등
  • http/https 요청에 대하여 동적인 응답을 보내면 Web Application Server
    • PHP : Apache + php plug-in
      • Platform : Laravel
    • Jsp & Servlet : (Java)
      • Platform : Spring / Spring boot(Kotlin)
    • Node.js : Node.js + Web framework (Javascript)

Web Application Server

  • Platform : 프로젝트의 뼈대 및 편리한 개발 환경을 제공
    • Platform → JSP에서 매번 DB에 연결하는 것처럼 노가다 성 코드를 줄여주는 역할
    • 개발자 개인의 역량에 따라 품질이 좌우되지 않도록한다.
    • 프로젝트 설정, 의존성 관리 등 반복되는 작업을 줄여준다.

Untitled.png

반응형
  1. Response Message
  2. 상황별 Request Method
  3. Web Application Server
'공부/Spring' 카테고리의 다른 글
  • [Spring]RESTFul Server 만들어보기
  • [Spring]JPA 사용해보기
  • [Spring]개발환경설정
  • [Spring]Spring Framework 소개
Future0_
Future0_
rm -rf /
Future0_
Luna Developer Blog
Future0_
전체
오늘
어제
  • 분류 전체보기 (112)
    • 프로그래밍 (4)
      • 알고리즘 (4)
    • 보안 (14)
      • Dreamhack (4)
      • Hackthebox (1)
      • Webhacking (9)
    • 프로젝트 (4)
    • 공부 (80)
      • Database (2)
      • Python (11)
      • System (4)
      • Java (13)
      • JSP (13)
      • Spring (11)
      • Kotlin (16)
      • 자료구조 (10)
      • 기계학습 (0)
    • Docker (4)
    • Github (2)
    • Tip (1)
    • 잡담 (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • shared preference
  • cs
  • 상속
  • Computer science
  • 컴퓨터
  • Kotlin
  • 디버깅키해시
  • Android Studio
  • dreamhack
  • SpringBoot
  • 자료구조
  • Java
  • 알고리즘
  • React
  • 키 해시
  • native app
  • ViewModel
  • 1.9.22
  • Python
  • android studio 삭제
  • webhacking
  • spring
  • 프로그래밍
  • 코틀린기본문법
  • 보안
  • 자바빈즈
  • jsp
  • api 통신
  • Database
  • docker

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
Future0_
[Spring]WAS(Web Application Server)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.