전산쟁이의 카피질

뒤로 검색

Get방식과 POST 방식의 Socket 통신-HTTP 프로토콜

2013/04/22 19:30

출처 : http://gamecode.tistory.com/13

http://www.tistory.com/Account/Test.asp 에서 ID와 PW를 받아 로그인 인증을 처리한다고 가정

이 포스팅에서는 GET 방식과 POST 방식의 장단점 자세한 설명보다는
C++ 코드로 작성하는 방법의 차이에 대해서 설명 합니다.

우선 HTTP 요청의 포맷은 다음과 같습니다.



1. GET 방식



GET 방식은 URL 주소 뒤에 파라미터를 붙여서 전송하는 방식 입니다.
URL과 파라미터를 구분하기 위해 ? 를 구분자로 쓰며, 파라미터가 여러개 일 경우 & 를 각 파라미터의 구분자로 사용합니다.
마지막 헤더 Connection 다음에 공백 라인이 한 줄 더 있는데,
요청 본문이 없다고 하더라도 이는 꼭 필요 합니다.(HTTP 요청 포맷 참조)




2. POST 방식



POST 방식은 URL 주소 뒤에 파라미터를 붙이는 방식이 아닌, 요청헤더에 포함시켜서 전송하는 방식 입니다.
위의 GET 방식에서는 strData를 request-line 에 포함하였는데, POST 방식에서는 마지막 헤더와 공백라인 뒤에
요청본문을 포함합니다.


위에 코드에서는 문제가 없지만 만약 ID가 Test가 아닌 Test& 라면 어떻게 될까요?
gamecode.tistory.com/Account/Test.asp?ID=Test&&PW=1234

이러한 문제를 해결 하기 위해 URL Encoding이 필요 합니다.
다음 포스팅에는 URL Encoding에 대하여 쓰도록 하겠습니다.

Tags

GET, POST, socket
이 페이지는 Textcube 1.10.0 : beta 1 로 구동됩니다 데스크탑 화면