안전한 메서드란 무엇일까 ?
결론과 예를 말하자면, GET과 HEAD는 안전하다고 말할 수 있다. 그 이유는 클라이언트가 서버로 GET, HEAD를 요청 한다고 해서, 서버에서 달라지는 것은 아무것도 없다.
즉, Select-조회하여 뿌려주기만하고, 서버 자체의 변화는 아무것도 없다는 것이다. 이를 우리는 안전한 메서드라고 말한다.
이번에는 POST 요청을 했다고 해보자. 클라이언트는 서버로 일련의 데이타들을 보낼 것이고, 그 데이타들은 서버 내에서 어떠한 작용을 한다 ( POST의 목적이므로 )
즉 서버 자체에 변화가 일어난 것이다. (결제가 일어난다거나,, 그룹이 생성된다거나 .. )
안전한 메서드의 목적은, 서버에 영향을 미치는 안전하지 않은 메서드가 사용될 때 사용자들에게 그 사실을 알려주는 HTTP 애플리케이션을 만들 수 있도록 하는 것임.
GET ?
가장 흔히 사용하게 될 메서드임. 서버에게 리소스를 요청
HEAD ?
동작 방식은 GET과 완전히 동일하지만, 서버는 응답으로 header만 리턴해주고 body는 돌려주지 않음.
- 리소스를 가져오기전에 리소스의 정보에 대해 알 수 있음.
- 응답의 상태코드를 통해, 개체가 존재하는지 확인
- 헤더를 확인해 리소스가 변경되었는지 체크 가능
PUT ?
서버에 문서를 씀. Request의 본문을 가지고 요청 URL의 이름대로 새 문서를 만들거나, 기존 문서에 덮어씀
1.요청
PUT /test.txt HTTP/1.1
Host : www.asdf.com
Content-type : text/plain
Content-length : 5
ABCDE
2.서버는 /test.txt 문서를 생성(갱신)
3.응답
HTTP/1.1 201 Created
~~blabla
POST ?
서버에 입력(처리) 데이타를 전송하기 위해 사용되며, HTML의 폼을 지원하기 위해 자주 사용됨.
TRACE ?
클라이언트가 서버로 요청 시, 실제로 방화벽. 프락시, 게이트웨이 등 많은 중간 과정을 거친다. 요청에는 어떠한 바디도 포함되지 않는ㄷ.
- TRACE는 클라이언트에게 자신의 요청이 서버에 도착 했을 때, 어떻게 보이게 되는지 알려준다
DELETE ?
말그대로, 리소스를 삭제 요청할때 사용한다. 하지만 삭제 요청만 하고, 삭제를 할지 무시할 지는 서버에서 정한다.
상태코드 ?
100-199 : 정보성 상태코드
200-299 : 성공 상태 코드
300-399 : 리다이렉션 상태 코드
400-499 : 클라이언트 에러 상태 코드
500- 599 : 서버 에러 상태코드
'Development > HTTP' 카테고리의 다른 글
HTTP 요청 흐름의 이해 (번역) (0) | 2020.05.07 |
---|---|
HTTP 메시지 헤더에 대해 조금 더 . . . (1) | 2016.07.21 |
3. HTTP 메시지 - 기본 구조 (0) | 2016.07.20 |
2. URL과 리소스 - URL 단축과 확장, 설계 (0) | 2016.07.17 |
2. URL과 리소스 - URL 문법 (0) | 2016.07.15 |