웹기반 애플리케이션

JSP 8일차 📃_RequestLine_RequestHeader_RequestBody

비비펄 2023. 3. 2. 20:44

📌Request Line

protocol/version,URL(URI, 자원에 대한 식별자, 명사),http Method(자원에 대한 행위, 동사)
http(request) Method : 요청의 의도(목적)와 패키징 방식을 표현.

 

📌http(request) Method종류

GET(R) : default method, 서버의 자원 조회, body영역이 형성되지 않음
POST(C) : 클라이언트의 의도적 전송 컨텐츠가 존재함. body 영역이 형성됨. content-* 종류의 요청 헤더들이 존재함.
PUT/PATCH(U) PUT : 전체 데이터 수정 / PATCH : 부분 데이터 수정
DELETE(D)
OPTION : preFlight 요청으로 본 요청의 메소드 지원 여부 파악
HEAD : response body 가 없는 형태로 응답이 전송됨.
TRACE : server debugging용도로 제한적 사용.

ex) /member/memberList.do
    /member/memberVies.do?memId=a001
    /member/memberInsert.do
    /member/memberUpdate.do
    /member/memberDelete.do
    
    RESTful URI구조
    /member (GET) -member에 대한 정보를 가져와라
    /member/a001 (GET) - a001이라는 member에 대한 정보를 가져와라
    /member (POST) member라는 정보에 대해 전송
    /member/a001 (PUT) a001이라는 member에 대한 정보를 update
    /member/a001 (DELETE) a001이라는 member에 대한 정보를 삭제
    /member (DELETE) member에대한 정보를 삭제
    

📌Request Header

클라이언트와 요청을 수식하기 위한 비의도적 메타 데이터가 들어가는 영역.

<%=request.getHeader("Accept") %>
name/value 쌍의 문자열 형태로 전송
ex) Accept-* : 응답 컨텐츠의 속성을 제한하는 요청 헤더.
Content-* : request body 를 통해 전송되는 컨텐츠의 속성을 표현한는 헤더.
Content-Type : application/xml
Content-Length : 12222
User-Agent : 클라이언트가 사용하는 시스템에 대한 정보를 표현하는 헤더.
ex) Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
(현재 사용하는 클라이언트의 OS정보)  HTML의 번역을 담당
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57

 

📌Request Body(Content Body, Message Body)

메소드가 Post여야만 존재
: 클라이언트가 전송하는 의도적 입력 데이터(컨텐츠) 영역.
: Content-Type요청 헤더에 따라 컨텐츠 형식이 다를 수 있음.
ex) Content-Type : application/x-www-form-urlencoded -> 파라미터로 전송된 문자열
    Content-type : multipart/form-data -> 파트 형태로 전송된 컨텐츠
    content-Type : application/json -> JSON 형태로 전송된 컨텐츠