이 기사는 서버와 상호 작용하는 다양한 방법을 소개합니다. URL의 전체 이름은 우리가 생각할 수있는 리소스 디스크립터입니다. 네트워크의 리소스를 설명하는 데 사용되는 URL 주소는 조사, 변경, 증가에 해당합니다. 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 증가, 추가, 추가, 증가, 4 개의 작업. 이 시점에서 모든 사람은 일반적인 이해를 가져야합니다.
1. HTTP 사양에 따라 GET는 정보 수집에 사용되며 안전하고 힘이어야합니다.
(1).. 다시 말해, 요청은 일반적으로 부작용을 일으키지 않아야합니다. 즉, 데이터베이스 쿼리와 마찬가지로 리소스 정보를 얻는 것입니다. 데이터를 수정하지 않고 데이터를 늘리고 리소스 상태에 영향을 미치지 않습니다.
* 참고 : 여기서 보안의 의미는 수정되지 않은 정보만을 나타냅니다.
(2). 여기서는 MI 대기의 개념을 설명하겠습니다.
idempotent와 idempotnce는 일반적으로 추상 대수에서 수학적 또는 컴퓨터 개념입니다.
몇 가지 정의를 기다리십시오.
단안 작업의 경우 작업이 작동 및 작동 계산 결과에 대해 작업이 동일하면 작업 결과는 작업 결과와 동일합니다. 예를 들어, 절대 값 작동은 실수의 농도에서 ABS (a) = abs (abs (a))가 있습니다.
쌍안 조작의 경우 참여 작업의 두 값이 동일하면 계산 결과가 참여 작업의 두 값과 같으면 작동의 힘을 기능이라고합니다. 실수, 즉, MAX (X, X) = X입니다.
위의 설명을 읽은 후에는 힘의 의미를 이해해야합니다.
그러나 실제 응용에서 위의 두 조항은 그렇게 엄격하지 않습니다. 다른 사람들의 기사를 인용하는 예 : 예를 들어, 뉴스 사이트의 첫 페이지가 지속적으로 업데이트됩니다. 두 번째 요청은 다른 뉴스 배치를 반환하지만, 운영은 항상 현재 뉴스를 반환하기 때문에 안전하고 힘으로 간주됩니다. 기본적으로, 목표는 사용자가 링크를 열면 자신의 관점에서 자원을 변경할 수 없다는 것을 확신 할 수 있습니다.
2. HTTP 사양에 따라 게시물은 서버의 리소스 변경 요청이 서버의 리소스를 수정할 수 있음을 나타냅니다. 위의 예를 계속 인용하십시오. 뉴스에 대한 독자의 의견은 게시물을 통해 구현되어야합니다.
위의 위에서 HTTP 사양에서 Get and Post의 일부 원칙에 대해 이야기합니다. 그러나 실제로 많은 사람들이 HTTP 사양에 따라이를 수행하지 않았습니다.
1. 많은 사람들이 탐욕스럽고 편리합니다. 자원을 업데이트 할 때, 당신은 더 번거로운 포스트와 함께 가야하기 때문에 얻을 수 있습니다.
2. 증가, 삭제, 변경, 조작을 확인하려면 실제로 Put and Delete를 사용하지 않고 Get/Post를 통해이를 완료 할 수 있습니다.
3. 다른 하나는 초기 웹 MVC 프레임 워크 설계자가 의식적으로 URL을 추상 리소스로 취급하지 않았으므로 더 심각한 문제는 기존 웹 MVC 프레임 워크가 기본적으로 단지 Get 및 Post를 게시하는 것만 지원한다는 것입니다.
* MVC : MVC는 원래 데스크탑 프로그램에 존재하고 V는 사용자 인터페이스를 말하고 C는 컨트롤러입니다. MVC를 사용하는 목적은 동일한 프로그램이 다른 표현식 양식을 사용할 수 있도록 M 및 V의 구현 코드를 분리하는 것입니다.
위의 3 점은 이전 스타일 세트를 설명합니다 (HTTP 사양에 대한 엄격한 준수가 없음).
원래 이유에 대해 이야기 한 후, 우리는 표면 이미지에서 Get과 Post의 차이점을 살펴 봅니다.
1. get 요청에 의해 요청 된 데이터는 URL에 첨부되어 (즉, 데이터를 HTTP 프로토콜 헤더에 배치하고 데이터를 전송하여 데이터를 전송합니다 Hyddd & Password = idontknow & venify =%e4%bd%a0%e5%a5%bd. 데이터가 영어 문자/번호 인 경우 원래 보내는 원래 보내기 공간 인 경우+로 변환, 중국어/기타 문자 인 경우 Base64로 문자열을 직접 암호화하여 BD를 얻습니다. ASCII는 16 진수로 대표됩니다.
게시물은 제출 된 데이터를 HTTP 패키지에 넣습니다.
2. Byget을 제출 한 데이터는 1024 바이트 일 수 있습니다. 교차로 교차로
위의 문장은 실제로 다른 기사에서 옮겨졌습니다.
(1).) get 메소드에 의해 제출 된 데이터는 1024 바이트 일 수 있다는 것입니다. get은 URL에 의해 제출되기 때문에 GET를 제출할 수있는 데이터의 양은 URL 길이와 직접 관련이 있습니다. 실제로 URL은 매개 변수의 상한 문제가 없으며 HTTP 프로토콜 사양은 URL 길이를 제한하지 않습니다. 이 한도는 특정 브라우저 및 서버 제한입니다. IE의 URL 제한은 2083 바이트 (2k+35)입니다. Netscape, Firefox 등과 같은 다른 브라우저의 경우 장기 제한이 없으며 제한은 운영 체제의 지원에 따라 다릅니다.
이는 매개 변수 값 데이터 길이뿐만 아니라 전체 URL 길이로 제한됩니다. [참조 데이터 5 참조]
(2).
ASP 프로그램의 경우, 요청 객체는 각 도메인을 처리 할 때 데이터 길이 제한이 100k입니다. 그러나 request.binaryread를 사용하는 경우 제한이 없습니다.
이 연장에서 Microsoft는 보안상의 이유로 IIS 6.0에 대한 제한이 증가했습니다. 우리는 여전히주의를 기울여야합니다.
1). IIS 6. 기본 ASP Post Data 볼륨은 200KB이며 양식 당 도메인 제한은 100KB입니다.
2). IIS 6. 파일 업로드 파일의 최대 크기는 4MB입니다.
3). IIIS 6. 가장 큰 요청 헤더는 16KB입니다.
IIS 6.0에는 이전에 이러한 제한이 없었습니다. [참조 데이터 5 참조]
따라서 위의 80k, 100k는 기본값 일 수 있습니다 (참고 : IIS4 및 IIS5의 매개 변수를 확인하지 않았지만 직접 설정해야합니다. 각 버전의 IIS 매개 변수의 기본값은 다르므로 관련 IIS 구성 문서를 참조하십시오.
3. ASP에서 서버는 request.queryString을 사용하여 GET Request 매개 변수를 얻고 request.form을 사용하여 게시물 요청 매개 변수를 얻습니다. JSP에서는 request.getQueryString () 메소드가 있지만 : test.jsp를 전달하십시오 & password = hyddd, getQueryString () gets : name = hyddd & password = hyddd. PHP에서는 $ _get 및 $ _post를 사용하여 GET 및 게시물에서 데이터를 얻을 수 있으며 $ _request는 Get 및 Post의 두 요청으로 데이터를 얻을 수 있습니다. JSP와 PHP에서 JSP에서 $ _request를 사용하는 데 숨겨진 위험이있을 것입니다.
4. Post의 보안은 GET의 보안보다 높습니다. 참고 : 여기에 언급 된 안전은 위에서 언급 한 보안과 같은 개념이 아닙니다. 위 보안의 의미는 데이터를 수정하는 것이 아니며 여기에서 보안의 의미는 예를 들어 Get을 통해 데이터를 제출하면 사용자 이름과 비밀번호가 URL에 나타납니다. (1) 로그인 페이지는 브라우저 일 수 있습니다. 사이트 요청 위조 공격.
요약하면, Get은 서버에 데이터를 보내라는 요청이며, Post는 서버 (form), 메소드 기본값으로 데이터를 제출하라는 요청입니다!