HTTP(Hypertext Transfer Protocol)과 GET, POST
- 🚀 HTTP(Hypertext Transfer Protocol)
- 서버와 클라이언트 통신을 가능하게 하기 위해 디자인된 통신 규약(Protocol)
- 이 규칙에 맞게 서버와 클라이언트는 서로 정보를 교환합니다.
- 클라이언트 - 서버 간의 request - response 프로토콜로 동작합니다.
- 🛸 HTTP method에는 다음과 같은 것들이 존재합니다.
- GET
- POST
- PUT
- HEAD
- DELETE
- PATCH
- OPTIONS
- 이들 중에서 GET과 POST가 가장 보편적으로 사용되는 메소드입니다.
🎯 GET
지정된 리소스에서 데이터를 요청해야 할 때 사용합니다.
예를 들어, 서버로부터 회원 정보를 조회해야 할 경우 GET 메소드를 활용합니다.
1
http://www.abc.com/test/demo_form.php?name1=value1&name2=value2
엔드포인트 뒤에 ?를 시작으로 뒤에 name=value 쌍으로 url 주소에 파라미터를 넘기고 있는데 이것을 쿼리 스트링(query string) 이라고 합니다.
- GET request는 한 번 했던 요청이 캐시되는 특징이 있습니다. 브라우저 히스토리에도 남습니다. 예를 들어 css나 js 같은 컨텐츠들이 캐시되는데, 이들이 변경되어도 일반적으로 새로고침을 하더라도 바로 바뀌지 않습니다. 이 때 브라우저 캐시를 비우면 GET은 서버로 요청을 다시 보내며 변경된 모습이 나타납니다.
- GET request는 요청에 있어서 길이 제한이 존재합니다.
- GET request는 오직 데이터를 요청하는 데에만 사용됩니다.
- GET request는 URL에 데이터가 노출되므로 민감한 데이터를 다룰 때에는 사용하지 않아야 합니다.
🎯 POST
리소스를 만들거나 업데이트하기 위하여 서버로 데이터를 전송할 때 사용합니다. POST 방식에서는 HTTP request의 request body 부분에 데이터가 담겨 서버로 전송됩니다. GET이 URL에 담는 것과 다른 점입니다.
예를 들어 게시글 작성이나 수정 등의 기능을 위해 서버로 데이터를 전송합니다.
- POST request는 캐시되는 특성이 없습니다. 브라우저 히스토리에도 남지 않습니다.
- POST request는 body 부분에 데이터를 담아 전송하므로 길이 제한이 없습니다.
- GET은 전송할 데이터가 주소에 그대로 드러나고, POST 방식은 비록 데이터가 body에 담기지만 이 또한 클라이언트에서 확인이 가능하기 때문에 이 데이터들은 모두 암호화가 필요합니다.
- SSL과 같은 암호화를 활용해서 HTTP 통신을 하는 방법을 사용합니다.
- SSL은 전송되는 데이터들을 암호화하여 인터넷 연결의 보안을 유지시켜 주는 기술을 뜻합니다.
- 같은 종류로 TLS(전송 계층 보안)이 있으며 현재 쓰이는 기술이나 SSL을 대명사처럼 일반적인 용어로 사용하고 있습니다.