인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

정리

Form data 전송 질문

작성

·

403

·

수정됨

0

안녕하세요 강의를 듣다 의문점이 생겨서 질문남깁니다!

  • 서블릿 정리 4분40초 부터

Form 데이터를 body로 전송에는 POST방식만 사용하고, PUT이나 PATCH는 HTTP 스펙상 불가능하고 POST방식만 가능하다고 하셨는데

HTTP 규약은 GET과 POST를 포함하여 모든 HTTP 메서드를 유연하게 사용할 수 있도록 설계되어 있어서 클라이언트에서 Form데이터를 PUT메서드로 요청 하고 받는것 또한 가능합니다.

 

from flask import Flask, request

app = Flask(__name__)

@app.route('/submit', methods=['PUT'])

def submit():

name = request.form['name']

email = request.form['email']

message = request.form['message']

print(name,email,message)

return 'Form submitted successfully'

if name == '__main__':

app.run(debug=True)

 

실제로 위와같이 정상적으로 서버에서 처리도 가능하구요

Rest api나 관례상 form데이터를 전송할때 post 메서드를 사용한다가 정확한 표현 아닐까요?

강의를 보고 혼란이 와서 질문남깁니다. 읽어주셔서 감사합니다.

 

간단하게 예시를 들기위해 flask사용하였습니다.

답변 1

0

안녕하세요, 송재백 님! 공식 서포터즈 codesweaver 입니다.

'순수 HTML' Form 태그에서 지원하는 HTTP 메서드는 Get, Post 두 가지라고 이해하시면 됩니다.

그러나 자바스크립트 등을 이용하여 HTTP 메서드를 Put, Patch, Delete 등으로 변경하여 전송할 수 있습니다.

말씀하신 것 처럼 RestAPI 를 만들 때 Put, Patch, Delete 를 구분하기 보단 Get, Post 로 처리하는 경우가 많긴 합니다.


감사합니다.

Form 데이터를 body로 전송에는 POST방식만 사용하고, PUT이나 PATCH는 HTML 스펙상 불가능하다

라는 부분에 오류가 있는게 맞나요?

 

'순수 HTML' Form 태그에서 지원하는 HTTP 메서드는 Get, Post 두 가지라고 이해하시면 됩니다.

그러나 자바스크립트 등을 이용하여 HTTP 메서드를 Put, Patch, Delete 등으로 변경하여 전송할 수 있습니다.

curl -X PUT https://example.com/ 

위와 같이 자바스크립트없이 PUT 요청을 보낼수있지않나요?

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기