회고록 블로그

HTML method: get 방식 vs post 방식 본문

2. 프로그래밍 언어 공부/HTML+CSS

HTML method: get 방식 vs post 방식

김간장 2021. 3. 3. 17:36

HTML에서 <form>태그의 method 속성을 이용해 get 방식, post 방식을 지정할 수 있지만

이 method 전송 방식에 대해서 결정하는 것은 '서버쪽 엔지니어'의 권한이라고 한다.

(생활코딩 曰)

 

get 방식 vs post 방식

메소드는 get과 post 외에도 많이 있는데 그건 밑에 외전으로 적기로 하자.

이 method는 클라이언트 ---> 서버로 요청(requset)을 할 때 어떤 방법으로 보낼지를 결정하는 것이다.

이 글을 적는 이유는 나중에 검색하기 귀찮아서 스크랩 목적이므로..

둘의 차이는 아래 능력자님의 글을 참고하기로 하자.

mangkyu.tistory.com/17

 

[Web] GET과 POST의 비교 및 차이

사용자가 어떤 홈페이지로 이동하기 위해서 URL을 브라우저 주소창에 작성하고 엔터를 누르면 원하는 페이지로 이동합니다. 사용자는 단순히 URL(Uniform Resource Locator)을 입력하였을 뿐이지만 서버

mangkyu.tistory.com

당장 get 방식과 post 방식을 이해하려면, HTTP 패킷부터 이해를 해야한다.

 

HTTP는 Hyper Text Ransfer Protocol의 약자로, 클라이언트와 서버가 인터넷 상에서 메시지를 주고 받을 때 사용하는 프로토콜(약속, 규약정도?)을 말한다.

그리고 HTTP는 헤더와 바디로 되어 있고 각각 특정한 정보들이 포함되어 있다.

 

Burp suite 툴을 사용하면 그 구조를 볼 수 있는데, 설치하기 귀찮아서 WireShark로 캡쳐해왔다.

(HTTP 패킷 찾아오는 것도 힘들었다.. 대부분 HTTPS 이어서..ㅠㅠ)

 

빨간 글씨는 request, 파란 글씨는 response

위의 능력자님의 블로그에도 적혀있지만 GET 방식은 body를 빈 상태로 전송한다.

따라서 위의 패킷을 캡쳐한 것은 전부 HTTP 헤더(header)이다.

 

HTTP의 헤더(header)를 보면 알 수 있지만 method(GET), host, Cookie 등등이 적혀있다.

get 방식은 이 헤더(header) 안에 정보를 모두 입력해서 전송하는 방식이다.

 

 

post 방식은 패킷을 캡쳐할 수가 없다. (안보임)

어쨌든 post 방식은 HTTP 바디(body)에 요청 데이터가 들어가 있다.

 

post 방식의 패킷이 궁금하다면 아래 능력자 선생님의 블로그를 참고하면 좋을 것 같다.

사실 글을 보면 알겠지만 body에 있어도 그 내용이 보인다. post 방식이 암호화까지 해주는건 아닌 것 같다.

heepie.me/164

 

[2017.10.24] 01. http GET Method와 POST Method 개념과 실습

우선 GET과 POST Method는 사용 방법에 정해진 것은 없다. (왜냐하면 사용하는 때 문법적으로 명확히 정해져있다고 생각했고 GET과 POST Method이 언제 써야하는지 계속 검색하고 다녔다....) 개념 HTTP

heepie.me

그런데도 post 방식이 더 안전하다고 하는 이유가 무엇일까 고민을 해봤는데..

 

첫번째는 어쨌든 눈으로 보기에는 URL에서 패스워드 같은 정보를 확인할 수 없기 때문인 것 같고,

두번째 이유는...

생각해보니 보안을 배울 때 그런 것이 있었던 것 같다.

HTTP이든 TCP이든 헤더(header) 부분은 목적지 등 전송을 하는데 필요한 정보가 있기 때문에 암호화를 하지 않지만

바디(body)는 데이터가 들어있기 때문에 암호화 해서 보낼 수 있는 그런 프로토콜이 있었던 것 같다.

(그게 SSL 이었나? 아닌가 HTTPS 이었나보다.)

 

마치, 우편물의 밖에 적혀있는 주소나 이름은 암호화 할 수 없지만(집배원이 어떤 집으로 이 우편물을 보내야할지 알아야 하기 때문에)

안에 내용은 보이지 않도록 할 수 있는 것처럼 말이다.

 

그래서 헤더에 모든 정보를 포함하는 GET 방식보다는, 바디에 중요한 내용을 포함하는 POST 방식이 더 안전하다고 하는 것일 수도 있다고 생각이 되었다. (post 방식은 언젠가 필요할 때 암호화를 적용할 수 있으니까?)

 

근데 검증된 사실이 아닌 내 뇌피셜이다.


[외전] method 종류

항상 많은 능력자님들 감사합니다.

javaplant.tistory.com/18

 

HTTP 응답코드 메소드 정리 GET, POST, PUT, PATCH, DELETE, TRACE, OPTIONS

HTTP Request 정보  GET /index.html HTTP/1.1  요청 URL정보 (Mehotd /URI HTTP버젼)  user-agent: MSIE 6.0; Window NT 5.0  사용자 웹 브라우져 종류  accept: test/html; */*  요청 데이터 타입 (응답..

javaplant.tistory.com

너무 메소드가 많긴 하다.

get, head, post, put, patch, delete, connect, trace, options 메소드.. ㅎ...

필요할 때마다 이 글을 보면서 눈에 익히면 될 것 같다.


p.s.

저번에 '공부 필기' 글을 쓰면서,

"웹 브라우저는 html 문서를 해석하면서 그 안에 들어있는 이미지, css 등을 웹 서버에게 요청하고 그 결과를 받는다"고 했었다.

오늘 wireshark로 패킷을 캡쳐해보니 아마 그 순서가 아래와 같은 순서로 처리되나보다. (뇌피셜임)

 

1) 웹 브라우저가 이미지, CSS 등을 웹 서버에 요청하려고 한다. (HTTP 프로토콜로 말을 전달함)

2) 클라이언트(웹 브라우저가 설치되어 있는 PC)는 웹 브라우저가 HTTP로 전달해준 요구서(?)에 맞춰서 웹 서버에게 요청을 보내는데 TCP로 보낸다. (TCP 패킷이 많은 이유는 단편화 때문인 듯)

주황색은 클라이언트IP, 파란색은 웹서버IP

나중에 맞는지 확인해보아야겠다. (검증해야할게 점점 늘어나네..)

 

 

Comments