Ajax에서의 GET vs POST
Ajax의 GET 요청과 POST 요청의 차이점은 무엇입니까?
GET을 사용하면 파라미터가 URL로 전송된다는 것 외에는 차이가 없습니다.모든 요구는 백그라운드에서 이루어지며 사용자는 차이를 찾을 수 없기 때문입니다.
edit: PUT 및 DELETE 메서드는 무엇에 사용됩니까?
GET은 서버로부터 데이터를 취득하도록 설계되어 있습니다.POST(및 잘 알려지지 않은 친구 PUT 및 DELETE)는 서버의 데이터를 수정하기 위해 설계되었습니다.
GET 요구로 인해 애플리케이션에서 데이터가 삭제되는 일은 없습니다.GET를 사용하여 데이터를 삭제할 수 있는 링크가 있는 경우, Google은 사이트를 감시하고 있는 모든 "삭제" 링크를 클릭할 수 있습니다.
정식 답변은 HTML 2.0 사양을 인용한 다음에서 찾을 수식 답변은 다음과 같습니다.
폼의 처리가 등가성이 있는 경우(즉, 세계 상태에 대한 지속적인 관측 가능한 영향이 없는 경우), 폼 방법은 GET이어야 합니다.많은 데이터베이스 검색은 눈에 보이는 부작용이 없으며 쿼리 폼의 이상적인 응용 프로그램을 만듭니다.
폼 처리와 관련된 서비스에 부작용이 있는 경우(데이터베이스 변경이나 서비스 등록 등) 방법은 POST여야 합니다.
AJAX 콜에서는 서버가 지원하는 모든 메서드를 사용해야 합니다.항상 데이터를 수정하는 작업이 POST/PUT/DELETE에 의해 호출되도록 서버를 설계해야 합니다.그 외의 코멘트에는, REST 에의 링크가 있습니다.이 링크는 일반적으로, C/R/U/D를 「POST or PUT」(작성)/GET(읽기)/PUT(갱신)/DELETE(삭제)에 매핑합니다.
대량의 데이터나 기밀 데이터를 HTTPS 경유로 송신하는 경우는, POST 를 사용할 필요가 있습니다.단순한 파라미터라면 GET을 사용합니다.
GET 요청에는 전송할 수 있는 데이터 양에 제한이 있습니다.정확한 번호를 잊어버렸지만, 만약 당신이 중요한 것을 보낸다면 문제가 생길 수 있습니다.
기본적으로 GET과 POST의 차이점은 GET 요구에서는 파라미터가 URL로 전달되고 POST와 마찬가지로 파라미터가 메시지 본문에 포함되어 있다는 것입니다.
그것의 AJAX인지 아닌지는 무관하다.네가 하고 있는 행동에 관한 거야REST의 원칙을 따르는 것을 추천합니다.갱신, 삭제 등에 관한 추가 규정이 있습니다.
GET 요구는 CSRF(Cross Site Request Formature) 공격에 이용하기 쉽습니다.즉, 가짜 POST 요청은 사용자 측에서 Javascript를 활성화해야 하지만 가짜 GET 요청은 img 스크립트 태그만으로 여전히 가능합니다.
많은 웹 서버는 URL의 일부로 전달할 수 있는 데이터 길이를 제한하고 있기 때문에 GET 요청은 디버깅하기 어려운 이상한 방법으로 중단될 수 있습니다.
또한 대부분의 서버 소프트웨어는 액세스로그에 URL을 기록하기 때문에 GET 요구에서 중요한 정보(패스워드 등)를 전달하면 이 정보가 보통 텍스트로 디스크에 기록될 가능성이 높습니다.
REST의 관점에서 GET 요청은 부작용을 일으키지 않아야 합니다.데이터를 수정해서는 안 됩니다.따라서 ID를 사용하여 리소스를 GET하는 경우 이는 타당하지만 리소스에 대한 변경을 커밋하는 경우 http 동사에는 PUT, POST 또는 UPDATE를 사용해야 합니다.
둘 다 데이터를 보내고 해당 데이터를 사용하여 응답을 받는 데 사용됩니다.
GET: 서버에 정보 저장소를 가져옵니다.즉, 검색, 트윗, 개인 정보.정보를 송신하고 싶은 경우는, process.syslog?name=subroto 를 사용해 송신 요구를 취득해 주세요.기본적으로 url 경유로 정보를 송신합니다.URL은 2083자를 초과할 수 없습니다.그래서 블로그 투고는 불가능하다는 것을 기억하시나요?
POST: 포스트는 get과 같은 작업을 수행합니다.사용자 등록, 사용자 로그인, 빅데이터 전송, 블로그 포스트.안전한 정보를 전송해야 할 경우 url을 통과하지 않으므로 post 또는 빅데이터를 사용하십시오.
AJAX: $.get() 및 $.post()에는 $.ajax()의 서브셋인 기능이 포함되어 있습니다.구성이 다양합니다.
$.get() 메서드는 $의 약어입니다.아약스()개체를 전달하는 대신 $.get()을 사용하는 경우 인수를 전달합니다.적어도 첫 번째 두 개의 인수가 필요합니다.이 인수는 취득할 파일의 URL(즉, 「test.txt」)과 성공 콜백입니다.
요약:.
$.get( url [, data ] [, success ] [, dataType ] )
$.post( url [, data ] [, success ] [, dataType ] ) // for sending secure or Large information
$.ajax( url [, settings ] ) // More Configaration
첫,,, 일인다다다다 다다다다다GET
에는 '읽기'를 합니다.POST
"txt" "txt" "txt" "txt"
는 일부 가 '캐시'를 한다는 GET
결과.에 문제가 있었습니다.AJAX
입니다만, 가 IE7을 캐시하고 있는 되었습니다.GET
결과.플로우를 재검토하여 요청을 변경했습니다.POST
.
그러니 사용하지 마세요.GET
캐싱이 필요 없는 경우.
(물론 GET 조작에서는 캐시를 디세블로 할 수 있습니다.하지만 난 그게 더 싫었어)
저는 POST가 더 좋아요.송신된 값이 데이터에 한정되어 있는 것을 알고 있는 이벤트에의 액세스를 예약합니다.예를 들어 ID로 항목을 검색할 수 있는 "컨트롤"이 있습니다.예: "getitem?id=123", "deleteImtem?id=123", ...그 외의 경우는, 유저가 기입할 수 있는 폼이 있으면, POST 를 추천합니다.
Ryan Smith가 말한 것처럼 대량의 데이터를 전송하기 위해서는 POST를 사용하는 것이 좋으며, 다른 언어/특수 문자를 사용하는 경우에는 걱정을 덜 수 있습니다(일반적으로 모든 주요 javascript 프레임워크에 문제가 없지만 POST를 사용하는 것이 덜하다고 생각합니다).
REST의 관점에서는, 이것을 새로운 프로젝트(프로젝트 전체와의 정합성을 유지하기 위해서)에 사용할 수 있다고 생각합니다.
마지막으로 네트워크에서 사용되는 일부 프로그램(URL loguers(즉, URL loguers))이 있습니다.: 종업원이 비인증 사이트, ...) 프록시, ...) 또는 기타 툴로 쿼리를 대행 수신할 수 있는지 확인합니다.Somes는 다른 웹 페이지와 마찬가지로 GET과 함께 보낸 매개 변수를 보고서에 표시합니다.하지만 이 상황에서는 문제가 아닐 수 있습니다.프로젝트에서 다른 프로젝트로의 변경입니다!;)
차이는 같다GET
그리고.POST
Ajax 사용 여부, HTMLform
또는curl
관련 정의는 다음과 같습니다.
URL 에 혼선이 생길 가능성이 있는 문자(스페이스등)를 포함한 인수를 건네는 경우는, POST 를 사용합니다.그렇지 않으면 GET을 사용할 수 있습니다.
일반적으로 몇 가지 사소한 논쟁을 전달할 경우 GET을 사용합니다.다만, 블로그 엔트리나 텍스트등의 유저가 송신한 정보를 전달하려면 , POST 를 사용하는 것이 좋습니다.
세그먼트 베이스의 URL 에 완전하게 의존하는 특정의 프레임워크도 있습니다(예:site.com/products/133
보다는site.com/products.php?id=333
이러한 프레임워크에서는 보안을 위해 GET 변수가 설정되지 않습니다.이 경우 항상 POST를 사용합니다.
언급URL : https://stackoverflow.com/questions/715335/get-vs-post-in-ajax
'programing' 카테고리의 다른 글
텍스트 영역의 트위터 스타일 자동 완성 (0) | 2023.03.20 |
---|---|
워드프레스에서 다음/이전 포스트 href 및 제목을 가져오는 방법 (0) | 2023.03.20 |
Angular에서 요소의 실제 너비는 언제 알 수 있습니까? (0) | 2023.03.15 |
AngularJS 컨트롤러 및 "엄격 사용" (0) | 2023.03.15 |
블로그 투고로서 WordPress에 페이스북 페이지 투고를 끌어오는 방법은? (0) | 2023.03.15 |