HTTP 요청 방법
HTTP 란 무엇입니까?
HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간의 통신을 가능하게 하도록 설계되었습니다.
HTTP는 클라이언트와 서버 간의 요청-응답 프로토콜로 작동합니다.
예: 클라이언트(브라우저)가 서버에 HTTP 요청을 보냅니다. 그런 다음 서버는 클라이언트에 응답을 반환합니다. 응답에는 요청에 대한 상태 정보가 포함되며 요청된 콘텐츠도 포함될 수 있습니다.
HTTP 메소드
- 가져 오기
- 게시하다
- 놓다
- 머리
- 삭제
- 반점
- 옵션
가장 일반적인 두 가지 HTTP 메서드는 GET 및 POST입니다.
GET 메서드
GET은 지정된 리소스에서 데이터를 요청하는 데 사용됩니다.
GET은 가장 일반적인 HTTP 메소드 중 하나입니다.
쿼리 문자열(이름/값 쌍)은 GET 요청의 URL로 전송됩니다.
/test/demo_form.php?name1=value1&name2=value2
GET 요청에 대한 기타 참고 사항:
- GET 요청을 캐시할 수 있습니다.
- GET 요청은 브라우저 기록에 남아 있습니다.
- GET 요청을 북마크에 추가할 수 있습니다.
- 민감한 데이터를 처리할 때 GET 요청을 사용해서는 안 됩니다.
- GET 요청에는 길이 제한이 있습니다.
- GET 요청은 데이터 요청에만 사용됩니다(수정 불가).
POST 메서드
POST는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용됩니다.
POST를 통해 서버로 전송된 데이터는 HTTP 요청의 요청 본문에 저장됩니다.
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
POST는 가장 일반적인 HTTP 방법 중 하나입니다.
POST 요청에 대한 기타 참고 사항:
- POST 요청은 캐시되지 않습니다.
- POST 요청은 브라우저 기록에 남아 있지 않습니다.
- POST 요청을 북마크할 수 없습니다.
- POST 요청에는 데이터 길이에 대한 제한이 없습니다.
PUT 메서드
PUT은 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용됩니다.
POST와 PUT의 차이점은 PUT 요청이 멱등적이라는 것입니다. 즉, 동일한 PUT 요청을 여러 번 호출하면 항상 동일한 결과가 생성됩니다. 반대로 POST 요청을 반복적으로 호출하면 동일한 리소스를 여러 번 생성하는 부작용이 있습니다.
HEAD 방식
HEAD는 GET과 거의 동일하지만 응답 본문이 없습니다.
즉, GET /users가 사용자 목록을 반환하면 HEAD /users는 동일한 요청을 하지만 사용자 목록은 반환하지 않습니다.
HEAD 요청은 큰 파일이나 응답 본문을 다운로드하기 전과 같이 실제로 GET 요청을 하기 전에 GET 요청이 반환할 내용을 확인하는 데 유용합니다.
DELETE 메서드
DELETE 메소드는 지정된 자원을 삭제합니다.
OPTIONS 메서드
OPTIONS 메서드는 대상 리소스에 대한 통신 옵션을 설명합니다.
GET과 POST 비교
다음 표에서는 GET 및 POST라는 두 가지 HTTP 메서드를 비교합니다.
GET | POST | |
---|---|---|
BACK button/Reload | Harmless | Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted) |
Bookmarked | Can be bookmarked | Cannot be bookmarked |
Cached | Can be cached | Not cached |
Encoding type | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data |
History | Parameters remain in browser history | Parameters are not saved in browser history |
Restrictions on data length | Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) | No restrictions |
Restrictions on data type | Only ASCII characters allowed | No restrictions. Binary data is also allowed |
Security | GET is less secure compared to POST because data sent is part of the URL Never use GET when sending passwords or other sensitive information! |
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs |
Visibility | Data is visible to everyone in the URL | Data is not displayed in the URL |