포스트 백이란 무엇입니까?


142

나는 웹 개발에 나섰고 포스트 백 이라는 단어를 보았습니다. 웹 기반이 아닌 배경에서 온 새로운 웹 개발자는 포스트 백에 대해 무엇을 알아야합니까? (즉, 무엇이며 언제 발생합니까?)

웹 세계의 초보자가 포스트 백을 인식하도록 돕기 위해 더 많은 정보를 공유하려는 경우 가장 감사하겠습니다.

답변:


178

다음은 ASP.Net 초보자를 대상으로합니다.

언제 발생합니까?

포스트 백은 클라이언트 브라우저에서 시작됩니다. 일반적으로 페이지의 컨트롤 중 하나는 사용자에 의해 조작되며 (버튼 클릭 또는 드롭 다운 변경 등)이 컨트롤은 포스트 백을 시작합니다. 이 컨트롤의 상태와 페이지의 다른 모든 컨트롤 (보기 상태)은 웹 서버에 게시 됩니다.

무슨 일이야?

가장 일반적으로 포스트 백은 웹 서버가 포스트 백을 시작한 페이지 클래스 뒤의 코드 인스턴스를 작성하게합니다. 그런 다음이 페이지 개체는 일반 페이지 수명주기 내에서 약간의 차이로 실행됩니다 (아래 참조). 페이지 수명주기 동안 사용자를 다른 페이지로 리디렉션하지 않으면 포스트 백의 최종 결과가 사용자에게 다시 표시되는 것과 동일한 페이지가되고 다른 포스트 백이 발생할 수 있습니다.

왜 그런가요?

웹 애플리케이션이 웹 서버에서 실행 중입니다. 사용자의 응답을 처리하거나 응용 프로그램 상태를 변경하거나 다른 페이지로 이동하려면 웹 서버에서 실행할 코드를 가져와야합니다. 이를 수행하는 유일한 방법은 사용자가 현재 작업중인 모든 정보를 수집하여 서버로 다시 보내는 것입니다.

초보자가 주목해야 할 사항은 다음과 같습니다.

  • 게시 페이지의 컨트롤 상태는 컨텍스트 내에서 사용할 수 있습니다. 이를 통해 페이지 컨트롤을 조작하거나 정보를 기반으로 다른 페이지로 리디렉션 할 수 있습니다.
  • 웹 폼의 컨트롤에는 다른 컨트롤과 마찬가지로 이벤트가 있으므로 이벤트 처리기가 있습니다. 페이지 수명주기의 초기화 부분은 포스트 백을 유발 한 컨트롤의 이벤트 핸들러 전에 실행됩니다. 따라서 페이지의 Init 및 Load 이벤트 핸들러의 코드는 사용자가 클릭 한 버튼에 대한 이벤트 핸들러의 코드보다 먼저 실행됩니다.
  • 포스트 백 후 페이지를 실행할 때는 "Page.IsPostBack"속성 값이 "true"로 설정되고 그렇지 않으면 "false"로 설정됩니다.
  • Ajax 및 MVC와 같은 기술로 포스트 백 작동 방식이 변경되었습니다.

2
작은 수정- "이 컨트롤의 상태와 페이지의 다른 모든 컨트롤 (보기 상태라고도 함)이 다시 게시됩니다." 이 데이터는 실제로 포스트 백 데이터입니다. Viewstate 데이터도 다시 게시되지만 이것이 서버에있는 마지막 시간의 컨트롤 상태입니다.
Simon 계속

포스트 백은 ASP.NET뿐만 아니라 모든 .NET 플랫폼에서 사용됩니다.
JNF

1
"사용자의 응답을 처리하거나 응용 프로그램 상태를 변경하거나 다른 페이지로 이동하려면 웹 서버에서 실행할 코드를 가져와야합니다." 약간 오해의 소지가 있습니다. 이러한 작업을 수행하기 위해 항상 '웹 서버에서 실행하기위한 코드' 가 필요 하지는 않습니다 . 가능하면 클라이언트에서 사용자 입력을 처리하는 것이 좋습니다. 포스트 백에 대해 알아야 할 가장 중요한 것 중 하나는 어떻게하면 / 인 하지 를 할; 즉, 클라이언트 쪽 또는 Ajax 등을 통해 처리 할시기
Hawkeye Parker

1
@HawkeyeParker에 동의하십시오. 내가 아는 모든 것이 Web Forms 아키텍처 일 때 이것을 다시 썼습니다. 그 이후로 확실히 먼 길을 왔습니다! 내 설명은 모두 Ajax를 전혀 고려하지 않으며 전혀 고려하지 않습니다.
Andy McCluggage

27

에서 위키 피 디아 :

포스트 백은 일부 페이지를 처리하기 위해 전체 페이지와 그 내용이 서버로 전송 된 후 서버가 동일한 페이지를 브라우저에 다시 게시 할 때 대화 형 웹 페이지에서 수행하는 작업입니다.


@ Galalgian : 결과와 같은 페이지를 표시하기 위해 일부 유효성 검사 오류가 발생할 때만 발생한다고 생각하지 마십시오.
Shirgill Farhan 2014

21

포스트 백은 웹 페이지가 처음에 페이지를 생성 한 스크립트 / dll / 무엇에 데이터를 게시 할 때 발생합니다.

C #의 예 (asp.net)

...

if (!IsPostback)
   // generate form
else
   process submitted data;

20

주어진 정의를 확장하면 웹 개발자로서 알아야 할 가장 중요한 것은 포스트 백 사이에 상태가 저장되지 않는다는 것입니다. ASP.NET의 Session 또는 Viewstate 컬렉션과 같은 상태를 유지하는 방법이 있지만 일반적으로 모든 포스트 백에서 상태를 다시 만들 수있는 프로그램을 작성하십시오.

이것은 아마도 데스크톱과 웹 기반 응용 프로그램 프로그래밍의 가장 큰 차이점 일 것입니다. 본능적으로이 방법으로 글을 쓰는 시점까지 몇 달이 걸렸습니다.


2
잘 넣어. 세션 및 viewstate를 제외하고는 아무것도 저장되지 않습니다
Miles

1
좋은 지적입니다! 예, 이것은 클라이언트 프로그래밍 영역에서 올 때 뇌를 감싸는 데 약간의 시간이 걸리는 것 같습니다.
Scott Saad

10

웹 개발에는 일반적으로 양식 ( <form>태그)이 포함 된 html 페이지가 포함됩니다 . 양식은 URL에 게시됩니다. 원하는 URL에 게시 할 지정된 양식을 설정할 수 있습니다. 포스트 백은 양식 게시물이 자신의 페이지 / URL로 백업 할 때입니다.

이 용어는 ASP.Net 개발자 에게 특별한 의미를 갖 습니다. 이는 페이지의 많은 동작, 특히 '이벤트 처리'를 주도하는 주요 메커니즘이기 때문입니다. ASP.Net 페이지는 거의 항상 자체적으로 다시 게시되는 하나의 서버 양식을 가지며 이러한 포스트 백은 페이지 수명주기라는 서버의 실행을 트리거합니다.


6

이 용어는 타사 웹 서비스 API와 상호 작용할 때 웹 응용 프로그램 개발에도 사용됩니다.

많은 API에는 대화식 및 비 대화식 통합이 모두 필요합니다. 일반적으로 대화식 부분은 리디렉션을 사용하여 수행됩니다 (사이트 1은 사용자를 로그인하여 다시 리디렉션하는 사이트 2로 리디렉션합니다). 비 대화식 부분은 '포스트 백'또는 사이트 2 서버에서 사이트 1 서버로의 HTTP POST를 사용하여 수행됩니다.


5

스크립트가 html 양식을 생성하고 해당 양식의 조치 http가 동일한 양식으로 다시 POST되는 경우.


4

포스트 백은 기본적으로 양식을 새 페이지로 보내지 않고 현재 데이터를 처리 할 때와 동일한 페이지 또는 스크립트 (.php .asp 등)에 제출하는 경우입니다.

예를 들어 포럼의 페이지 (viewpage.php)가있을 수 있습니다. 여기서 의견을 제출하면 동일한 페이지 (viewpage.php)에 제출되며 새 컨텐츠가 추가 된 상태로 표시됩니다.

참조 : http://en.wikipedia.org/wiki/Postback


3

다시 게시는 클라이언트 웹 브라우저의 페이지를 서버로 푸시하는 모든 것입니다.

많은 정보가 있습니다 .Google에서 포스트 백을 검색하십시오.

대부분의 경우, 모든 ASP 제어는 포스트 백 (버튼 / 링크 클릭)을 유발하지만 일부는 사용자가 지시하지 않는 한 (확인란 / 콤보 박스)


3

포스트 백은 HTML 양식을 나타냅니다. HTML 양식에는 GET 및 POST의 두 가지 방법이 있습니다. 이러한 방법은 양식을 통해 클라이언트에서 서버로 데이터가 전송되는 방식을 결정합니다. 포스트 백은 제출 페이지로 다시 POST하는 작업입니다. 본질적으로 클라이언트에서 서버로, 그리고 다시 다시 완전한 회로를 형성합니다.


2

그러나 질문은 위에 정확하게 대답되었지만 내 지식을 공유하고 싶습니다. 포스트 백은 기본적으로 페이지 상태를 관리해야하는 몇 가지 작업을 수행하는 동안 사용할 수있는 속성입니다. 즉, 버튼 클릭과 같은 이벤트를 시작했거나 페이지를 새로 고친 경우입니다. 페이지가 처음으로로드 될 때, 즉 페이지를 새로 고친 경우, 그 당시 포스트 백 속성이 거짓이되고 그 후에는 페이지가됩니다.

if(!ispostback)
{
 // do some task here
}
else
{
 //do another task here
}

http://happycodng.blogspot.in/2013/09/concept-of-postback-in.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.