Elena Kaneva
Kiril Georgiev
Simeon Stoqnov
Aleksandra Dimitrova
Anna Marchina
Group Project-Initial draft
Web Servers
-
Web Server.
A web server can be a hardware or software, or both of them working together.
On the hardware side, a web server is a computer that stores a website's component files (e.g. HTML documents, images, CSS stylesheets, and JavaScript files) and delivers them to the end-user's device. It is connected to the Internet and can be accessed through a domain name like mozilla.org.
On the software side, a web server includes several parts that control how web users access hosted files, at minimum an HTTP server. An HTTP server is a piece of software that understands URLs (web addresses) and HTTP (the protocol your browser uses to view webpages).
At the most basic level, whenever a browser needs a file hosted on a web server, the browser requests the file via HTTP. When the request reaches the correct web server (hardware), the HTTP server (software) sends the requested document back, also through HTTP.
-
A static web server (stack) - a computer (hardware) with an HTTP server (software). Server sends its hosted files "as-is" to your browser.
-
A dynamic web server - a static web server plus extra software, most commonly an application server and a database. Server updates the hosted files before sending them to your browser.
-
Apache (Apache) - 32.80%
-
IIS (Microsoft) - 29.83%
-
Nginx (NGINX, Inc.) - 16.61%
-
GWS (Google) - 2.21%
The Apache HTTP web server
-
Description:
Apache is an open source Web server application managed by the Apache Software Foundation. Although Apache will run on all major operating systems, it is most frequently used in combination with Linux. These two, combined with MySQL database and PHP scripting language, comprise the popular LAMP Web server solution.
The server software is freely distributed, and the open source license means users can edit the underlying code to tweak performance and contribute to the future development of the program – a major source of its beloved status among its proponents. Support, fixes and development are handled by the user community and coordinated by the Apache Software Foundation.
Developer: Apache
Price: Free
-
Features
-
Some common language interfaces support Perl, Python, Tcl, and PHP.
-
Popular authentication modules include mod_access, mod_auth, mod_digest, and mod_auth_digest, the successor to mod_digest.
-
A sample of other features include Secure Sockets Layer and Transport Layer Security support (mod_ssl), a proxy module (mod_proxy),
-
a URL rewriter (mod_rewrite),
-
custom log files (mod_log_config), and
-
filtering support (mod_include and mod_ext_filter).
-
supports virtual hosting (enables one machine to host and simultaneously server several different websites) and a number of good, well-developed GUI interfaces.
-
webpage compression to reduce their size over http
-
Performance:
When it comes to performance, conventional wisdom has it that Apache is just OK, a bit better than IIS but quite a bit slower than its main open-source rival Nginx. This has been borne out by objective tests. Though by no means slow for most general tasks, Apache is still held back by two of its main features:
-
Feature bloat: Apache is frequently compared to MS Word – an extremely feature-rich application in which 90% of users only use about 10% of the features on a regular basis.
-
Apache is a process-based server, unlike many of its rivals that are event-based or asynchronous in nature. In a process-based server, each simultaneous connection requires a separate thread and this incurs significant overhead. An asynchronous server, on the other hand, is event-driven and handles requests in a single or very few threads.
IIS (Internet Information Services)
-
Description:
IIS is a web server offering, playing second fiddle to market leader Apache. As is expected of a core Microsoft product, it only runs and is bundled on Windows operating systems, but is otherwise free for use. It is a closed software product and supported by solely by Microsoft. Although development is not as open and quick as the open-source user-supported nature of Apache, a behemoth like Microsoft can throw formidable support and development resources at its products, and IIS has fortunately benefitted from this. There is a lite version called IIS Express that has been installable as a standalone freeware server from Windows XP SP3 onwards.
•Developer: Microsoft
•Price: Free
-
Features
-
FTP publishing
-
application request routing
-
media services
-
URL rewriting
-
strong support for the Microsoft products
-
offers in-depth diagnostic tools such as failed request tracing, request monitoring and runtime data
-
virtual hosting support.
-
attendant high cost and security implications compared to Linux
-
Performance:
IIS is reported as being slightly behind Apache in terms of performance. However, these results are tainted because the underlying operating system environment cannot be equalized in order to set an equal base. IIS is inextricably tied with Windows (for example IIS can easily pass and receive process threads from the Windows OS), and Apache simply cannot perform as well there. But both Apache and IIS are still handily beaten in terms of performance by the Nginx web server.
Nginx
-
Description
Nginx is a software to provide a web server. It can act as a reverse proxy server for TCP, UDP, HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer and an HTTP cache. Nginx runs on Unix, Linux, BSD variants, OS X, Solaris, AIX, HP-UX, and Windows. Nginx uses an asynchronous event-driven approach to handling requests. Nginx's modular event-driven architecture can provide more predictable performance under high loads. In 2015 Nginx was found to be the second most widely used web server across all "active" sites (15.33% of surveyed sites) and for the top million busiest sites (23.66% of surveyed sites). It currently powers popular websites like Pinterest, WordPress.com, Netflix, Hulu, CloudFlare, Zappos and Zynga.
-
Developer: Nginx, Inc.
-
Price: Free
-
Features
-
Ability to handle more than 10,000 simultaneous connections with a low memory footprint
-
Modular design
-
Asynchronous web server
-
Reverse proxy and Load balancing capability
-
Low resource requirement and consumption
-
Multiple protocol support
-
HTTP video streaming using MP4, FLV, HDS, HLS
-
Advantages:
Nginx is a very good choice in cases where you have a site that gets large volumes of traffic and is running into performance/memory issues on a VPS. A server running Nginx serves your site faster while using less memory than Apache. This lets you handle a much larger amount of traffic more gracefully than Apache would.
Conclusion
Apache, IIS and Nginx have their pros and cons as outlined above. The final choice may well be a compromise dictated by whichever solution meets as many of your must-have needs as possible. In the end, there is no one-size-fits-all web server, so use the solution that best aligns with your objectives.
Web Frameworks/Languages
-
Web Framework.
Software framework that is designed to support the development of web applications including web services, web resources and web APIs. Web frameworks aim to alleviate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks and session management, and they often promote code reuse. Many frameworks exist and each framework can typically have another framework built on top of it.
-
Caching
-
Security
-
Database access, mapping and configuration
-
URL mapping
-
Ajax and etc.
-
Top Frameworks 10/10/2016:
-
ASP.NET - 38% of whole web
-
PHP – 37%
-
Shockwave Flash Embed – 4%
-
J2EE – 3%
-
Adobe Dreamweaver – 2%
-
Ruby on Rails – 1%
-
Top Web Languages 10/10/2016:
-
ASP.NET – 50% of whole web
-
PHP – 49%
-
Ruby – 1%
ASP.NET
-
Description:
ASP.NET is an open source web framework for building modern web applications and services. With ASP.NET you can quickly create web sites based on HTML, CSS and JavaScript, scale them to millions of users and easily add more complex capabilities like Web APIs, forms over data or real time communications.
-
Developer: Microsoft
-
Sites: 43,244,302 live websites
-
Popular sites: Microsoft.net, Amazon.com, eBay.com
-
Price: Free
-
Features
-
Bundling and Minification Feature
-
Strongly Typed Data Controls
-
Model Binding - Isolating the Web Form from the Model
-
Value Providers
-
Support for OpenID in OAuth Logins
-
Support for improved paging in ASP.NET 4.5 GridView control
-
Enhanced support for asynchronous programming
-
Support for web sockets
-
Support for HTML5 form types
-
ASP.NET Web API
-
Advantages:
-
Drastically reduces the amount of code required to build large applications.
-
built-in Windows authentication and per-application configuration
-
Rich toolbox and designer in the Visual Studio integrated development environment.
-
easy to perform common tasks
-
The source code and HTML are together therefore ASP.NET pages are easy to maintain and write. Also the source code is executed on the server.
-
It is purely server-side technology so, ASP.NET code executes on the server before it is sent to the browser.
-
Being language-independent, it allows you to choose the language that best applies to your application or partition your application across many languages.
-
The Web server continuously monitors the pages, components and applications running on it. If it notices any memory leaks, infinite loops, other illegal activities, it immediately destroys those activities and restarts itself.
4. Disadvantages
-
Its upkeep is resource intensive
-
Windows and IIS have a documented history of bugs and vulnerabilities in the programs have been prone to exploitation in the past.
-
Adds a lot of overhead to the web applications
-
ASP.NET uses far more web server resources than other languages so it requires either better servers or a greater number of them
PHP
-
Description:
PHP is a server-side scripting language designed primarily for web development but is also used as a general-purpose programming language. PHP code may be embedded into HTML code, or it can be used in combination with various web template systems, web content management systems and web frameworks. PHP has been widely ported and can be deployed on most web servers on almost every operating system and platform, free of charge.
•Developer: The PHP Development Team, Zend Technologies
•Sites: 42,439,309 live websites
•Popular sites: Facebook, Wikipedia, Yahoo!, Tumbler, LAD Bible
•Price: Free
-
Features
-
PDO Class - provides a nice abstraction layer around a set of database drivers such as MySQL, PostgreSQL and MS SQL.
-
Exceptions - are used to 'throw' errors that can be caught at any point by bubbling up through your code stack.
-
Hashing API
-
SimpleXML Class
-
Advantages:
-
Simple and easy to learn
-
Support
-
Freedom
-
Free
-
Integration
-
Frameworks
-
Easier to fix problems
-
Scalability
-
Object Oriented
-
Speed
4. Disadvantages
-
Security issues - Since it is open sourced, so all people can see the source code, if there are bugs in the source code, it can be used by people to explore the weakness of PHP
-
Not suitable for large applications: Hard to maintain since it is not very modular.
-
Poor error handling method: PHP framework has a bad error handling method. It is not an proper solution for the PHP developers
J2EE
-
Description
Java Platform, Enterprise Edition or Java EE is a widely used computing platform for enterprise software.The platform provides an API and runtime environment for developing and running enterprise software, including network and web services, and other large-scale, multi-tiered, scalable, reliable, and secure network applications. Java EE extends the Java Platform, Standard Edition (Java SE), providing an API for object-relational mapping, distributed and multi-tier architectures, and web services. Software for Java EE is primarily developed in the Java programming language.
-
Developer: Oracle
-
Sites: 3,655,720 live websites
-
Popular sites: Wells Fargo, LinkedIn, Bank of America, Norton, UPS
-
Price: Free
-
Features
-
Java™ Database Connectivity (JDBC™) API
-
Transaction Service
-
Java Naming and Directory Interface™ (JNDI) API
-
Java™ Message Service (JMS) API
-
JavaMail™ API
-
Security
-
Advantages:
-
Complete Web services support. The J2EE platform provides a framework for developing and deploying web services on the Java platform.
-
Faster solutions delivery time to market. The J2EE platform uses "containers" to simplify development. J2EE containers provide for the separation of business logic from resource and lifecycle management, which means that developers can focus on writing business logic -- their value add -- rather than writing enterprise infrastructure.
-
Freedom of choice. J2EE technology is a set of standards that many vendors can implement. The vendors are free to compete on implementations but not on standards or APIs.
-
Simplified connectivity. J2EE technology makes it easier to connect the applications and systems you already have and bring those capabilities to the web, to cell phones, and to devices.
-
By offering one platform with faster solution delivery time to market, freedom of choice, and simplified connectivity, the J2EE platform helps IT by reducing TCO and simultaneously avoiding single-source for their enterprise software needs.
4. Disadvantages
-
Restrictions on the developer.
-
Availability of large number of proprietary vendor extensions leads to the temptation to use them and hence making the system non interoperable across various application server.
-
Since the specifications have grown to huge proportions, there is a large learning curve associated with J2EE.
Ruby on Rails
-
Description:
Ruby on Rails, or simply Rails, is a server-side web application framework written in Ruby under the MIT License. Ruby is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer, and HTML, CSS and JavaScript for display and user interfacing. In addition to MVC
•Developer: MIT License
•Sites: 1,090,767 live websites
•Popular sites: Twitter, Sound Cloud, Hulu, KickStarter, AirBnB, Twitch
•Price: Free
-
Features:
-
Rails have a well-defined plug-in structure that enables you to easily install and use plug-ins in your application.
-
Testing is Fun and Easy with Rspec
-
Track Application Exceptions
-
Mix and match between frameworks and servers with Rails on Rack
-
Easy Data Dumping
-
Advantages:
-
It’s Perfect For Web Technologies
-
Saves Money
-
Saves Time
-
Active and Helpful Community
-
Project Not Handcuffed
-
Build Your Own Plug and Play Apps
-
The Big Players Use It
4. Disadvantages
-
Slow processing: Several benchmark websites that regularly run and test response times of programming languages often describe Ruby as one of the slower programming languages.
-
New language: Ruby is fairly new and has its own unique coding language. Some programmers consider this a disadvantage because they have to take considerable time just to learn the language before using it
-
Lack of complete documentation online
Individual Team Member Responsibility list
Aleksandra Dimitrova and Anna Marchina-finding detailed information about Web server products, features, prices and doing tables for easy comparison. Simeon Stoqnov and Kiril Georgiev- finding qualitative information about Web Framework/Languages products on the market, advantages and disadvantages; good comparison of the features. Elena Kaneva- gathering the information, combining it and making it as a whole draft; afterwards for the final project making the presentation and the script for speaking in front of class. Making sure that the language is appropriate and understandable in front of non-IT people.
Share with your friends: |