Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP GET과 POST의 차이 #13

Open
yeonjaee opened this issue Aug 13, 2023 · 3 comments
Open

HTTP GET과 POST의 차이 #13

yeonjaee opened this issue Aug 13, 2023 · 3 comments

Comments

@yeonjaee
Copy link
Owner

No description provided.

@yeonjaee
Copy link
Owner Author

HTTP GET과 POST는 HTTP 프로토콜에서 사용되는 두 가지 주요 요청 메서드이다. 두 메서드는 웹 서버와 클라이언트 간의 데이터 전송 방식과 목적에 따라 다르게 동작한다.

@yeonjaee
Copy link
Owner Author

yeonjaee commented Aug 13, 2023

  1. 목적:

GET: 주로 정보를 검색하기 위해 사용된다. 웹 페이지를 요청하거나 서버에서 데이터를 검색할 때 사용된다.
POST: 데이터를 서버에 제출하기 위해 사용된다. 예를 들어, 웹 폼을 통해 입력된 데이터를 서버에 전송할 때 사용된다.

  1. 데이터 전송 방식:

GET: 데이터는 URL의 쿼리 문자열 부분에 포함되어 전송된다. 예: http://example.com/page?name=value
POST: 데이터는 HTTP 메시지의 본문에 포함되어 전송된다.

  1. 데이터 길이:

GET: URL의 길이에 제한이 있기 때문에 전송할 수 있는 데이터의 크기가 제한적이다.
POST: 본문에 데이터를 포함시키므로 큰 데이터를 전송하는 데 더 적합하다.

  1. 보안:

GET: 데이터가 URL에 포함되어 있기 때문에 민감한 정보(예: 비밀번호)를 전송하는 데 적합하지 않다. 브라우저의 히스토리나 웹 서버의 로그에 데이터가 기록될 수 있다.
POST: 데이터가 본문에 포함되어 있어 URL에 직접 노출되지 않는다. 그러나 POST만으로 데이터가 안전하다고 할 수는 없으며, 추가적인 보안 조치가 필요하다.

  1. 캐싱:

GET: GET 요청은 캐시될 수 있다. 이는 웹 브라우저나 중간 프록시에서 페이지의 내용을 저장하여 빠르게 제공할 수 있게 한다.
POST: POST 요청은 일반적으로 캐시되지 않는다.

  1. 북마크 및 브라우저 히스토리:

GET: GET 요청은 브라우저의 히스토리에 기록되고 북마크 할 수 있다.
POST: POST 요청은 브라우저의 히스토리에 기록되지 않으며 북마크할 수 없다.

  1. Idempotent (멱등성):

GET: GET은 멱등성을 가진다. 즉, 동일한 요청을 여러 번 수행해도 결과가 동일하다.
POST: POST는 멱등성이 없다. 동일한 요청을 여러 번 수행하면 다른 결과가 발생할 수 있다.

@yeonjaee
Copy link
Owner Author

yeonjaee commented Aug 13, 2023

웹 폼

<form action="/register" method="post">
    이름: <input type="text" name="username"><br>
    비밀번호: <input type="password" name="password"><br>
    이메일: <input type="text" name="email"><br>
    <input type="submit" value="회원가입">
</form>

HTML 코드에서, 사용자가 "회원가입" 버튼을 클릭하면 /register URL로 POST 요청이 전송된다. 이때, 사용자가 입력한 이름, 비밀번호, 이메일 정보가 HTTP 메시지의 본문에 포함되어 전송된다.

Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 43

username=JohnDoe&password=secret&email=john@example.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant