반응형

직접 구현하지 않아도 spring web mvc에서 자동으로 처리하는 http 메서드로 아래 OPTIONS테스트 결과를 보면 HEAD와 OPTIONS를 만들지 않았어도 Allows에 포함되어 있는 것을 확인할 수 있으.

  • HEAD

    • GET과 동일하지만 body (즉, 응답본문)을 제외하고 응답 헤더만 받는다.
    @Test
    public void holloTest() throws Exception {
      mockMvc.perform(head("/hello"))
        .andDo(print())
        .andExpect(status().isOk());
    }
    
    /** 원래는 return으로 "hello"를 반환하지만 Body가 비어있는 것을 확인할 수 있다.
         MockHttpServletResponse:
               Status = 200
        Error message = null
              Headers = [Content-Type:"text/plain;charset=UTF-8", Content-Length:"5"]
         Content type = text/plain;charset=UTF-8
                 Body = 
        Forwarded URL = null
       Redirected URL = null
    */
  • OPTIONS

    • 사용할 수 있는 메서드를 알려준다.
    // Controller에는 @GetMapping과 @PostMapping을 만든 상태.
    @Test
    public void holloTest() throws Exception {
      mockMvc.perform(head("/hello"))
        .andDo(print())
        .andExpect(status().isOk());
    }
    
    /** Headers에 Allow로 가능한 요청 메서드들이 반환되었다.
        MockHttpServletResponse:
               Status = 200
        Error message = null
              Headers = [Allow:"GET,HEAD,POST,OPTIONS"]
         Content type = null
                 Body = 
        Forwarded URL = null
       Redirected URL = null
    */
반응형

BELATED ARTICLES

more