What is HTTP?
HTTP(Hyper Text Transfer Protocol)는 클라이언트와 서버 간의 통신을 위해 만들어진 프로토콜이다.
클라이언트가 서버에 HTTP 요청을 보내면, 서버가 필요한 정보를 포함하여 클라이언트에게 응답하는 것이다.
HTTP Methods
HTTP에는 크게 9가지의 메소드가 있다.
1. GET
2. POST
3. PUT
4. HEAD
5. DELETE
6. PATCH
7. OPTIONS
8. CONNECT
9. TRACE
가장 많이 사용하는 것은 GET과 POST 메서드이다.
GET
GET은 지정된 리소스에서 데이터를 요청하는 데 사용된다. 요청하는 데이터가 HTTP Request Message의 Header 부분에 url 이 담겨서 전송되고,
? 뒤에 쿼리 문자열(이름/값) 쌍이 붙어서 요청이 전송된다.
/test/demo_form.php?name1=value1&name2=value2
GET 메서드의 특징은 크게 4가지가 있다.
1. GET 요청 캐시 가능
2. url에 정보가 노출되기에 중요한 데이터를 처리할 때는 GET 요청이 부적절
3. 길이 제한(일반적으로 2000자)
4. 데이터 요청에만 사용(데이터 수정 불가)
POST
POST는 서버로 데이터를 전송하여 리소스를 생성/업데이트하는 데 사용됩니다.
POST와 함께 서버로 전송된 데이터는 HTTP 요청의 Body에 저장된다.
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
POST 메소드 특징은 아래와 같다.
1. POST 요청은 캐시 불가능
2. 데이터 길이 제한 X
한눈에 비교하는 GET vs POST
PUT
PUT은 서버로 데이터를 전송하여 리소스를 생성하거나 업데이트할 때 사용한다.
POST도 이와 동일한 역할을 하는데 둘의 차이점이 뭘까? 바로 멱등성이다.
PUT은 멱등성이 있다. 즉, PUT을 여러 번 해도 결과는 똑같다. 예를 들어, x = 5는 x에 어떤 값을 넣어도 결국 5라는 결과를 만들어내기 때문에 멱등하다.
반대로 POST는 멱등성이 없다. 예를 들어, x++이라는 식은 x에 어떤 값이 들어가느냐에 따라 다른 결과를 만들어내기에 멱등하지 않은 것
References
w3schools.com/tags/ref_httpmethods
JaeYeopHan/Interview_Question_for_Beginner
stackoverflow.com/questions/630453/what-is-the-difference-between-post-and-put-in-http
'CS > 네트워크' 카테고리의 다른 글
DNS Round Robin (0) | 2022.10.24 |
---|---|
DNS (0) | 2022.10.24 |
HTTP vs HTTPS (1) | 2022.10.08 |
TCP vs UDP (0) | 2022.10.08 |
TCP 3-way handshaking & 4-way handshaking (0) | 2022.10.08 |