본문 바로가기
프로그래밍/Web Basic

HTTP 메서드의 속성, 데이터 조회, HTML Form

by YuminK 2023. 7. 31.

HTTP 메서드의 속성

1. 안전(Safe Methods)

2. 멱등(Indempotent Methods)

3. 캐시 가능(Cacheable Methods)

 

안전

호출해도 리소스를 변경하지 않는다. 

호출을 많이 해서 서버가 터지면 <= 이런 부분은 고려하지 않는다. 

 

멱등

한번 호출하든 100번 호출하든 결과가 똑같다.

멱등 메서드: GET, PUT, DELETE

자동 복구 메커니즘에 사용된다.

서버가 Timeout으로 정상 응답을 못 주었을 때, 클라이언트가 같은 요청을 다시 해도 되는가?

(외부 요인으로 중간에 리소스가 변경되는 것을 고려하지 않음)

 

캐시 가능

응답 결과 리소스를 캐시해서 사용해도 되는가?

GET, HEAD, POST, PATCH 캐시 가능

실제로는 GET, HEAD 정보만 캐시로 사용

 

클라이언트에서 서버로 데이터 전송

1. 쿼리 파라미터를 통한 데이터 전송 

GET, 정렬 필터

 

2. 메시지 바디를 통한 데이터 전송

POST, PUT, PATCH

회원 가입, 상품 주문, 리소스 등록, 리소스 변경

 

클라이언트에서 서버로 데이터 전송의 4가지 상황

1. 정적 데이터 조회

이미지, 정적 테스트 문서

 

2. 동적 데이터 조회

주로 검색, 게시판 목록에서 정렬 필터를 이용

 

3. HTML Form을 통한 데이터 전송

회원가입, 상품 주문, 데이터 변경

 

4. HTTP API를 통한 데이터 전송

회원가입, 상품 주문, 데이터 변경

서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax)

 

정적 데이터 조회

1. 이미지, 정적 텍스트 문서

2. 조회에는 GET 사용 

3. 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능하다. 

 

동적 데이터 조회

1. 주로 검색, 게시판 목록에서 정렬 필

2. 쿼리 파라미터를 사용해서 요청

HTML Form 데이터 전송

1. HTML Form submit시 POST 전송

예) 회원가입, 상품 주문, 데이터 변경

 

2. Content-Type: application/x-www-form-unlencoded 사용

form의 내용을 메시지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)

전송 데이터를 url encoding 처리

예) abc김 -> abc%EA%B9%80

 

3. HTML form은 GET 전송도 가능

 

4. Content-Type: multipart/form-data

파일 업로드 같은 바이너리 데이터 전송시 사용

다른 종류의 여러 파일과 폼의 내용 함께 전송 가능(multipart)

 

출처: HTTP 웹 기초 강의(김영한)

'프로그래밍 > Web Basic' 카테고리의 다른 글

상태 코드 200, 300  (0) 2023.08.01
URI 설계 예시(POST, PUT, HTML Form)  (0) 2023.08.01
HTTP 메서드  (0) 2023.07.30
비연결성, HTTP 요청과 응답 메시지  (0) 2023.07.30
HTTP, Stateful과 Stateless  (0) 2023.07.30

댓글