웹 프레임워크(WF) 또는 웹 애플리케이션 프레임워크(WAF)는 웹 서비스, 웹 리소스, 웹 API를 포함한 웹 애플리케이션 개발을 지원하도록 설계된 소프트웨어 프레임워크이다. 웹 프레임워크는 월드와이드웹에서 웹 애플리케이션을 구축하고 배포하기 위한 표준적인 방법을 제공하며, 웹 프레임워크는 웹 개발에서 수행되는 일반적인 활동과 관련된 오버헤드를 자동화하는 것을 목표로 한다. 예를 들어, 많은 웹 프레임워크는 데이터베이스 액세스, 템플릿 프레임워크, 세션 관리를 위한 라이브러리를 제공하여 코드 재사용을 용이하게 하는 경우가 많다. 동적 웹 사이트 개발을 대상으로 하는 경우가 많지만, 정적 웹 사이트에도 적용할 수 있다.
월드와이드웹의 디자인은 본질적으로 동적이 아니었기 때문에 초기 하이퍼텍스트는 웹 서버에 게시된 수작업으로 작성된 HTML 텍스트 파일로 구성되었다. 1993년, 외부 애플리케이션과 웹 서버 간의 인터페이스를 위해 CGI(Common Gateway Interface) 표준이 도입되어 사용자의 입력을 반영하는 동적 웹 페이지를 제공하게 되었다. 하게 되었다.
그러나 CGI 인터페이스의 초기 구현은 각 요청이 별도의 프로세스를 시작하기 때문에 일반적으로 서버 부하에 악영향을 미쳤다. 최근의 구현은 서버의 리소스 사용량을 줄이고 일반적인 성능을 향상시키기 위해 다른 기술 중에서도 영구적인 프로세스를 사용한다.
1995년에는 서버와 언어가 완전히 통합된 개발 환경이 등장했고, ColdFusion, PHP, Active Server Pages와 같은 새로운 웹 전용 언어가 등장했다.
동적 웹페이지 제작을 위한 대부분의 언어에는 일반적인 작업을 지원하는 라이브러리가 있지만, 웹 애플리케이션에서는 HTML 작성과 같은 특정 작업을 위해 특정 라이브러리(예: Jakarta Server Faces)가 필요한 경우가 많다.
1990년대 후반에는 웹 개발에 유용한 여러 라이브러리를 웹 개발자가 사용할 수 있는 하나의 통합된 소프트웨어 스택에 모아놓은 성숙한 "풀스택" 프레임워크가 등장하기 시작했다.
프레임워크는 단일 프로그래밍 언어를 기반으로 한 인터넷 애플리케이션 구축을 지원하기 위해 구축된 것으로, 젠드 프레임워크나 루비 온 레일즈와 같이 특정 언어의 기능을 보강하는 범용 도구부터 콘텐츠 관리 시스템(CMS), 모바일 개발 도구, 포털 도구와 같이 특정 사용자 애플리케이션을 중심으로 구축된 네이티브 언어로 프로그래밍이 가능한 패키지까지 다양하다.
웹 프레임워크는 브라우저의 아키텍처 규칙과 상태 비저장 프로토콜인 HTTP와 같은 프로토콜에 따라 작동해야 한다. 웹 페이지는 서버에서 제공하고, 브라우저는 자바스크립트를 통해 수정할 수 있다. 두 가지 접근 방식 모두 장단점이 있다.
서버 측에서 페이지를 변경하는 경우 일반적으로 페이지를 새로 고쳐야 하지만 모든 언어를 사용할 수 있고 더 많은 계산 능력을 사용할 수 있다. 클라이언트 측 변경은 데스크톱 애플리케이션처럼 작은 덩어리로 페이지를 새로 고칠 수 있지만, 자바스크립트로 제한되고 사용자 브라우저에서 실행되기 때문에 계산 능력이 제한될 수 있다. 일반적으로이 두 가지를 혼합하여 사용합니다. JavaScript를 많이 사용하고 페이지의 일부만 업데이트하는 애플리케이션을 단일 페이지 애플리케이션이라고하며 일반적으로 클라이언트 측 JavaScript 웹 프레임 워크를 사용하여 코드를 구성합니다. 사용합니다.