ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring]HTTP MESSEGE 구조
    Spring 2025. 3. 27. 19:36

    HTTP MESSEGE 구조


    서버에게 요청하는 요청 메세지(Request)와, 서버로 부터 받는 응답 메세지(Respond)가 있다.

    기본 구조




    Start Line[ Get(요청타입) / event(Path, 경로)  HTTP Version]  +Header  + emptyLine + messegebody로 이루어져 있다.


     Start Line 
          Get(요청타입) / event(Path, 경로)  HTTP Version 1.1
    .
          Get: 요청의 의도를 가짐. 

     

     

     

     POST(Create)  리소스 생성.
    HTML FORM(회원가입, 게시글 작성 등)에 사용
    Message Body를 통해 요청 데이터를 전달
    GET(Read)  Query String 포함 리소스 조회 
    [조건데이터를 포함한 데이터 전체 조회]
                                       /schedule?key=Value&key=Value      
                                (key=Value&key=Value -> Query String , Query param)

    Query String 미포함 리소스 조회 [전체 조회]
                                       /schedule
     PUT(전체 Update) 리소스 덮어쓰기
       POST와는 다르게 클라이언트 측에서 리소스를 식별하여
        URI를 지정
     
    리소스 전체 수정 요청
    (기존 리소스가 존재하는 경우)
                         {
                               수정 내용
                         }
    기존 리소스가 존재하면 완전히 덮어쓰기가 된다.
    (기존 리소스가 존재하고 일부만 변경하는 경우)
                          {
                                 수정, 추가 내용
                           }
    PATCH(일부 Update) 리소스 일부 수정

    리소스가 없으면 생성된다. /기존 내용에서 변경된 것을 수정한다.
    DELETE(delete)  리소스 삭제


     
          /event : Path는 HTTP Request가 전송되는 대상, 

                        절대 경로(”/”로 시작하는 경로)  Query String(= Query Parameter) 에 해당하는 값도 포함
                        ex)/search?keyword=spartaaw
                       Query String(= Query Parameter) 
     => 사용자가 입력 데이터를 전달하는 방법중의 하나로, url 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것을 말한다.
                      ex)    /schedule?key=Value&key=Value       (key=Value&key=Value -> Query String , Query param)

         1.1 : HTTP Version을 말한다.

    2.Header
        - Host: spartacodingclub.kr
        - field-name: OWS field-value OWS (OWS : 띄어쓰기 허용) 구조를 가진다.
        - field-name은 대소문자 구분을 하지 않는다.
        - 임의의 Header를 추가할 수 있다. (단, 서버가 값을 알고 있어야 함)
        - 요청의 추가 정보들을 가지고 있다.
            
            ex) Message Body 내용, 크기, 인증, 브라우저 정보, 서버 정보 등


    3. Empty Line
        - 공백 한 줄
        - 필수 값


    4. Message Body(있어도 되고 없어도 된다.)
        - 실제 전송하는 데이터가 담겨 있는 부분.
        
       ex)Json 작성/답변 내용                                     
         
             {
                  name:  paragon,
                  coment : 안녕하세요!  
              }
        - HTML, 이미지, JSON 등 byte로 표현되는 모든 데이터 전송 가능.
        - 요청 시 GET의 경우 Message Body가 지원되지 않는 경우가 많아 권장하지 않는다.


    기타 Method
        - HEAD
            - GET에서 Message Body를 제외하고 상태 줄과 헤더만 반환한다.
        - OPTIONS
            - 대상 리소스에 대한 통신 가능한 Method를 설명한다.
        - CONNECT
            - 대상 자원으로 식별되는 서버에 대한 터널을 설정한다.
            - 잘 사용하지 않는다.
        - TRACE
            - 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행한다.
            - 잘 사용하지 않는다.

    'Spring' 카테고리의 다른 글

    [Spring] Annotation  (0) 2025.03.29
    [Spring] HTTP Method 속성  (0) 2025.03.27
    [Spring] HTTP  (6) 2025.03.27
    [Spring] DNS (Domain Name System)  (0) 2025.03.27
    [Spring] TCP / UDP  (0) 2025.03.27
Designed by Tistory.