Opera (web browser)
Opera is a web browser for Microsoft Windows, Android, iOS, macOS, Linux operating systems. Opera Ltd. is publicly listed on the NASDAQ stock exchange, with majority ownership and control belonging to Chinese Businessman Yahui Zhou, creator of Beijing Kunlun Tech which specialises in mobile games and cybersecurity specialist Qihoo 360. Opera is a Chromium-based browser using the Blink layout engine, it differentiates itself because of other features. Opera was conceived at Telenor as a research project in 1994 and was bought by Opera Software in 1995, it had its own proprietary Presto layout engine. The Presto versions of Opera received many awards, but Presto development ended after the big transition to Chromium in 2013. There are three mobile versions called Opera Mobile, Opera Touch and Opera Mini. Opera began in 1994 as a research project at Telenor, the largest Norwegian telecommunications company. In 1995, it branched out into a separate company named Opera Software. Opera was first publicly released in 1996 with version 2.10.
In an attempt to capitalize on the emerging market for Internet-connected handheld devices, a project to port Opera to mobile device platforms was started in 1998. Opera 4.0, released in 2000, included a new cross-platform core that facilitated the creation of editions of Opera for multiple operating systems and platforms. Up to this point, Opera had to be purchased after the trial period ended. Version 5.0 saw the end of this requirement. Instead, Opera became ad-sponsored. Versions of Opera gave the user the choice of seeing banner ads or targeted text advertisements from Google. With version 8.5 the advertisements were removed and the primary financial support for the browser came through revenue from Google. Among the new features introduced in version 9.1 was fraud protection using technology from GeoTrust, a digital certificate provider, PhishTank, an organization that tracks known phishing web sites. This feature was further improved and expanded in version 9.5, when GeoTrust was replaced with Netcraft, malware protection from Haute Secure was added.
Many distinctive Opera features of the previous versions were dropped, Opera Mail was separated into a standalone application derived from Opera 12. In November 2016, the original Norwegian owner of Opera sold his stake in the business to a Chinese consortium under the name Golden Brick Capital Private Equity Fund I Limited Partnership for $600 million. An earlier deal was not approved by regulators. In January 2017, the source code of Opera 12.15 was leaked. To demonstrate how radically different a browser could look, Opera Neon, dubbed a "concept browser", was released in January 2017. PC World compared it to demo models that automakers and hardware vendors release to show their visions of the future. Instead of a Speed Dial, it displays the accessed websites in resemblance to a desktop with computer icons scattered all over it in artistic formation. Opera has originated features adopted by other web browsers, including Speed Dial, pop-up blocking, re-opening closed pages, private browsing, tabbed browsing.
Opera includes a download manager. Opera has "Speed Dial", which allows the user to add an unlimited number of pages shown in thumbnail form in a page displayed when a new tab is opened. Speed Dial allows the user to more navigate to the selected web pages, it is possible to control some aspects of the browser using the keyboard shortcuts. Page zooming allows text and other content such as Adobe Flash Player, Java platform and Scalable Vector Graphics to be increased or decreased in size to help those with impaired vision. Opera Software claims that when the Opera Turbo mode is enabled, the compression servers compress requested web pages by up to 50%, depending upon the content, before sending them to the users; this process reduces the amount of data transferred and is useful for crowded or slow network connections, making web pages load faster or when there are costs dependent on the total amount of data usage. This technique is used in Opera Mini for mobile devices and smartwatches. One security feature is the option to delete private data, such as HTTP cookies, browsing history
As of March 2010 Plack supports the following server backends: CGI SCGI FastCGI mod_perl under Apache 1.3 and 2.0 Standalone HTTP server included in Plack HTTP::Server::Simple Corona Starman Twiggy AnyEvent::HTTPD AnyEvent::ReverseHTTP Using the default standalone HTTP server: Running as a FastCGI daemon listening on a Unix socket, ready to be used by any Web server with FastCGI support: A working Hello world application run as a one-liner: The command above starts an HTTP server listening on port 5000 of every local interface and returns this 200 OK response to every HTTP request: PSGI and Plack website Plack documentation plackup manual
Mozilla Firefox is a free and open-source web browser developed by The Mozilla Foundation and its subsidiary, Mozilla Corporation. Firefox is available for Microsoft Windows, macOS, Linux, BSD, illumos and Solaris operating systems, its sibling, Firefox for Android, is available. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards. In 2017, Firefox began incorporating new technology under the code name Quantum to promote parallelism and a more intuitive user interface. An additional version, Firefox for iOS, was released on November 12, 2015. Due to platform restrictions, it uses the WebKit layout engine instead of Gecko, as with all other iOS web browsers. Firefox was created in 2002 under the codename "Phoenix" by the Mozilla community members who desired a standalone browser, rather than the Mozilla Application Suite bundle. During its beta phase, Firefox proved to be popular with its testers and was praised for its speed and add-ons compared to Microsoft's then-dominant Internet Explorer 6.
Firefox was released on November 9, 2004, challenged Internet Explorer's dominance with 60 million downloads within nine months. Firefox is the spiritual successor of Netscape Navigator, as the Mozilla community was created by Netscape in 1998 before their acquisition by AOL. Firefox usage grew to a peak of 32% at the end of 2009, with version 3.5 overtaking Internet Explorer 7, although not Internet Explorer as a whole. Usage declined in competition with Google Chrome; as of January 2019, Firefox has 9.5% usage share as a "desktop" browser, according to StatCounter, making it the second-most popular such web browser. Firefox is still the most popular desktop browser in a few countries including Cuba and Eritrea with 72.26% and 83.28% of the market share, respectively. According to Mozilla, in December 2014, there were half a billion Firefox users around the world; the project began as an experimental branch of the Mozilla project by Dave Hyatt, Joe Hewitt, Blake Ross. They believed the commercial requirements of Netscape's sponsorship and developer-driven feature creep compromised the utility of the Mozilla browser.
To combat what they saw as the Mozilla Suite's software bloat, they created a stand-alone browser, with which they intended to replace the Mozilla Suite. On April 3, 2003, the Mozilla Organization announced that they planned to change their focus from the Mozilla Suite to Firefox and Thunderbird; the community-driven SeaMonkey was formed and replaced the Mozilla Application Suite in 2005. The Firefox project has undergone several name changes, it was titled Phoenix, which carried the implication of the mythical firebird that rose triumphantly from the ashes of its dead predecessor, in this case from the "ashes" of Netscape Navigator after it had been killed off by Microsoft Internet Explorer in the "First Browser War". Phoenix was renamed due to trademark issues with Phoenix Technologies. In response, the Mozilla Foundation stated that the browser would always bear the name Mozilla Firebird to avoid confusion. After further pressure, on February 9, 2004, Mozilla Firebird became Mozilla Firefox.
The name Firefox was said to be derived from a nickname of the red panda, which became the mascot for the newly named project. For the abbreviation of Firefox, Mozilla prefers Fx or fx, though it is abbreviated as FF; the Firefox project went through many versions before version 1.0 was released on November 9, 2004. In 2016, Mozilla announced a project known as Quantum, which sought to improve Firefox's Gecko engine and other components to improve Firefox's performance, modernize its architecture, transition the browser to a multi-process model; these improvements came in the wake of decreasing market share to Google Chrome, as well as concerns that its performance was lapsing in comparison. Despite its improvements, these changes required existing add-ons for Firefox to be made incompatible with newer versions, in favor of a new extension system, designed to be similar to Chrome and other recent browsers. Firefox 57, released in November 2017, was the first version to contain enhancements from Quantum, has thus been named Firefox Quantum.
Firefox supported add-ons using the XUL and XPCOM APIs, which allowed them to directly access and manipulate much of the browser's internal functionality. As they are not compatible with its m
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is an application protocol for distributed, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can access, for example by a mouse click or by tapping the screen in a web browser. HTTP was developed to facilitate the World Wide Web. Development of HTTP was initiated by Tim Berners-Lee at CERN in 1989. Development of HTTP standards was coordinated by the Internet Engineering Task Force and the World Wide Web Consortium, culminating in the publication of a series of Requests for Comments; the first definition of HTTP/1.1, the version of HTTP in common use, occurred in RFC 2068 in 1997, although this was made obsolete by RFC 2616 in 1999 and again by the RFC 7230 family of RFCs in 2014. A version, the successor HTTP/2, was standardized in 2015, is now supported by major web servers and browsers over Transport Layer Security using Application-Layer Protocol Negotiation extension where TLS 1.2 or newer is required.
HTTP functions as a request–response protocol in the client–server computing model. A web browser, for example, may be the client and an application running on a computer hosting a website may be the server; the client submits an HTTP request message to the server. The server, which provides resources such as HTML files and other content, or performs other functions on behalf of the client, returns a response message to the client; the response contains completion status information about the request and may contain requested content in its message body. A web browser is an example of a user agent. Other types of user agent include the indexing software used by search providers, voice browsers, mobile apps, other software that accesses, consumes, or displays web content. HTTP is designed to permit intermediate network elements to improve or enable communications between clients and servers. High-traffic websites benefit from web cache servers that deliver content on behalf of upstream servers to improve response time.
Web browsers cache accessed web resources and reuse them, when possible, to reduce network traffic. HTTP proxy servers at private network boundaries can facilitate communication for clients without a globally routable address, by relaying messages with external servers. HTTP is an application layer protocol designed within the framework of the Internet protocol suite, its definition presumes an underlying and reliable transport layer protocol, Transmission Control Protocol is used. However, HTTP can be adapted to use unreliable protocols such as the User Datagram Protocol, for example in HTTPU and Simple Service Discovery Protocol. HTTP resources are identified and located on the network by Uniform Resource Locators, using the Uniform Resource Identifiers schemes http and https. URIs and hyperlinks in HTML documents form interlinked hypertext documents. HTTP/1.1 is a revision of the original HTTP. In HTTP/1.0 a separate connection to the same server is made for every resource request. HTTP/1.1 can reuse a connection multiple times to download images, stylesheets, etc after the page has been delivered.
HTTP/1.1 communications therefore experience less latency as the establishment of TCP connections presents considerable overhead. The term hypertext was coined by Ted Nelson in 1965 in the Xanadu Project, in turn inspired by Vannevar Bush's 1930s vision of the microfilm-based information retrieval and management "memex" system described in his 1945 essay "As We May Think". Tim Berners-Lee and his team at CERN are credited with inventing the original HTTP, along with HTML and the associated technology for a web server and a text-based web browser. Berners-Lee first proposed the "WorldWideWeb" project in 1989—now known as the World Wide Web; the first version of the protocol had only one method, namely GET, which would request a page from a server. The response from the server was always an HTML page; the first documented version of HTTP was HTTP V0.9. Dave Raggett led the HTTP Working Group in 1995 and wanted to expand the protocol with extended operations, extended negotiation, richer meta-information, tied with a security protocol which became more efficient by adding additional methods and header fields.
RFC 1945 introduced and recognized HTTP V1.0 in 1996. The HTTP WG planned to publish new standards in December 1995 and the support for pre-standard HTTP/1.1 based on the developing RFC 2068 was adopted by the major browser developers in early 1996. By March that year, pre-standard HTTP/1.1 was supported in Arena, Netscape 2.0, Netscape Navigator Gold 2.01, Mosaic 2.7, Lynx 2.5, in Internet Explorer 2.0. End-user adoption of the new browsers was rapid. In March 1996, one web hosting company reported that over 40% of browsers in use on the Internet were HTTP 1.1 compliant. That same web hosting company reported that by June 1996, 65% of all browsers accessing their servers were HTTP/1.1 compliant. The HTTP/1.1 standard as defined in RFC 2068 was released in January 1997. Improvements and updates to the HTTP/1.1 standard were released under RFC 2616 in June 1999. In 2007, the HTTPbis Working Group was formed, in part, to revise and clarify the HTTP/1.1 specification. In June 2014, the WG released an updated six-part specification obsoleting RFC 2616: RFC 7230, HTTP/1.1: Message Syntax and Routing RFC 7231, HTTP/1.1: Semantics and Content RFC 7232, HTTP/1.1: Conditional Requests RFC 7233, HTTP/1.1: Range Requests RFC 7234, HTTP/1.1: Caching RFC 7235, HTTP/1
A Java servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to any types of requests, they most implement web containers for hosting web applications on web servers and thus qualify as a server-side servlet web API; such web servlets are the Java counterpart to other dynamic web content technologies such as PHP and ASP. NET. A Java servlet processes or stores a Java class in Java EE that conforms to the Java Servlet API, a standard for implementing Java classes that respond to requests. Servlets could in principle communicate over any client–server protocol, but they are most used with the HTTP, thus "servlet" is used as shorthand for "HTTP servlet". Thus, a software developer may use a servlet to add dynamic content to a web server using the Java platform; the generated content is HTML, but may be other data such as XML and more JSON. Servlets can maintain state in session variables across many server transactions by using HTTP cookies, or URL mapping.
The Java servlet API has, to some extent, been superseded by two standard Java technologies for web services: the Java API for RESTful Web Services useful for AJAX, JSON and REST services, the Java API for XML Web Services useful for SOAP Web Services. To deploy and run a servlet, a web container must be used. A web container is the component of a web server that interacts with the servlets; the web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access rights. The Servlet API, contained in the Java package hierarchy javax.servlet, defines the expected interactions of the web container and a servlet. A Servlet is an object that generates a response based on that request; the basic Servlet package defines Java objects to represent servlet requests and responses, as well as objects to reflect the servlet's configuration parameters and execution environment. The package javax.servlet.http defines HTTP-specific subclasses of the generic servlet elements, including session management objects that track multiple requests and responses between the web server and a client.
Servlets may be packaged in a WAR file as a web application. Servlets can be generated automatically from JavaServer Pages by the JavaServer Pages compiler; the difference between servlets and JSP is that servlets embed HTML inside Java code, while JSPs embed Java code in HTML. While the direct usage of servlets to generate HTML has become rare, the higher level MVC web framework in Java EE still explicitly uses the servlet technology for the low level request/response handling via the FacesServlet. A somewhat older usage is to use servlets in conjunction with JSPs in a pattern called "Model 2", a flavor of the model–view–controller; the current version of Servlet is 4.0. The Java servlets API was first publicly announced at the inaugural JavaOne conference in May 1996. About two months after the announcements at the conference, the first public implementation was made available on the JavaSoft website; this was the first alpha of the Java Web Server which would be shipped as a product on June 5, 1997.
In his blog on java.net, Sun veteran and GlassFish lead Jim Driscoll details the history of servlet technology. James Gosling first thought of servlets in the early days of Java, but the concept did not become a product until December 1996 when Sun shipped JWS; this was. The Servlet1 specification was created by Pavni Diwanji while she worked at Sun Microsystems, with version 1.0 finalized in June 1997. Starting with version 2.2, the specification was developed under the Java Community Process. Three methods are central to the life cycle of a servlet; these are init and destroy. They are invoked at specific times by the server. During initialization stage of the servlet life cycle, the web container initializes the servlet instance by calling the init method, passing an object implementing the javax.servlet. ServletConfig interface; this configuration object allows the servlet to access name-value initialization parameters from the web application. After initialization, the servlet instance can service client requests.
Each request is serviced in its own separate thread. The web container calls the service method of the servlet for every request; the service method determines the kind of request being made and dispatches it to an appropriate method to handle the request. The developer of the servlet must provide an implementation for these methods. If a request is made for a method, not implemented by the servlet, the method of the parent class is called resulting in an error being returned to the requester; the web container calls the destroy method that takes the servlet out of service. The destroy method, like init, is called only once in the lifecycle of a servlet; the following is a typical user scenario of these methods. Assume that a user requests to visit a URL; the browser generates an HTTP request for this URL. This request is sent to the appropriate server; the HTTP request is forwarded to the servlet container. The container maps this request to a particular servlet; the servlet is dynamically loaded into the address space of the container.
The container invokes the init method of the servlet. This method is invoked only, it is possible to pass initialization parameters to the servlet so t
An open API is a publicly available application programming interface that provides developers with programmatic access to a proprietary software application or web service. APIs are sets of requirements that govern how one application can communicate and interact with another. APIs can allow developers to access certain internal functions of a program, although this is not the case for web APIs. In the simplest terms, an API allows one piece of software to interact with another piece of software, whether within a single computer via a mechanism provided by the operating system or over an internal or external TCP/IP-based or non-TCP/IP-based network. In the late 2010s, many APIs are provided by organisations for access with HTTP. APIs may be used by both developers inside the organisation that published the API or by any developers outside that organisation who wish to register for access to the interface. Open APIs have three main characteristics: They are available for use by developers and other users with few restrictions.
Restrictions might include the necessity to register with the service providing the API. They are backed by open data. Open data is available for everyone to use and republish as they wish, without restrictions from copyright, patents or other mechanisms of control. An Open API may be free to use but the publisher may limit how the API data can be used, they are based on an open standard. A private API is an interface that opens parts of an organisation’s backend data and application functionality for use by developers working within that organization. Private APIs are only exposed to internal developers therefore the API publishers have total control over what and how applications are developed. Private APIs offer substantial benefits with regards to internal collaboration. Using a private API across an organisation allows for greater shared awareness of the internal data models; as the developers are working for one organisation, communication will be more direct and therefore they should be able to work more cohesively as a group.
Private APIs can diminish the development time needed to manipulate and build internal systems that maximise productivity and create customer-facing applications that improve market reach and add value to existing offerings. In contrast to a private API, an open API is publicly available for all developers to access, they allow developers, outside of an organisation's workforce, to access backend data that can be used to enhance their own applications. Open APIs can increase revenue without the business having to invest in hiring new developers making them a profitable software application. However, it is important to remember that opening back end information to the public can create a range of security and management challenges. For example, publishing open APIs can make it harder for organisations to control the experience end users have with their information assets. Open API publishers can not assume. Furthermore, they cannot ensure that client apps maintain the look and feel of their corporate branding.
Open APIs can be used by businesses seeking to leverage the ever-growing community of freelancing developers who have the ability to create innovative applications that add value to their core business. Open APIs are favoured in the business sphere as they increase the production of new ideas without investing directly in development efforts. Businesses tailor their APIs to target specific developer audiences that they feel will be most effective in creating valuable new applications. However, an API can diminish an application's functionality if it is overloaded with features. For example, Yahoo's open search API allows developers to integrate Yahoo search into their own software applications; the addition of this API provides search functionality to the developer's application whilst increasing search traffic for Yahoo's search engine hence benefitting both parties. With respect to Facebook and Twitter, we can see how third parties have enriched these services with their own code. For example, the ability to create an account on an external site/app using your Facebook credentials is made possible using Facebook's open API.
Many large technology firms, such as Twitter, LinkedIn and Facebook, allow the use of their service by third parties and competitors. With the rise in prominence of HTML5 and Web 2.0, the modern browsing experience has become interactive and dynamic and this has, in part, been accelerated through the use of open APIs. Some open APIs fetch data from the database behind a website and these are called Web APIs. For example, Google's YouTube API allows developers to integrate YouTube into their applications by providing the capability to search for videos, retrieve standard feeds, see related content. Web APIs are used for exchanging information with a website either by sending data; when a web API fetches data from a website, the application makes a constructed HTTP request to the server the site is stored on. The server sends data back in a format your application expects or incorporates your changes to the website. OpenAPI Specification Application enablement Open system Mashup Webhook
PHP: Hypertext Preprocessor is a general-purpose programming language designed for web development. It was created by Rasmus Lerdorf in 1994. PHP stood for Personal Home Page, but it now stands for the recursive initialism PHP: Hypertext Preprocessor. PHP code may be executed with a command line interface, embedded into HTML code, or it can be used in combination with various web template systems, web content management systems, web frameworks. PHP code is processed by a PHP interpreter implemented as a module in a web server or as a Common Gateway Interface executable; the web server combines the results of the interpreted and executed PHP code, which may be any type of data, including images, with the generated web page. PHP can be used for many programming tasks outside of the web context, such as standalone graphical applications and robotic drone control; the standard PHP interpreter, powered by the Zend Engine, is free software released under the PHP License. PHP has been ported and can be deployed on most web servers on every operating system and platform, free of charge.
The PHP language evolved without a written formal specification or standard until 2014, with the original implementation acting as the de facto standard which other implementations aimed to follow. Since 2014, work has gone on to create a formal PHP specification. PHP development began in 1994 when Rasmus Lerdorf wrote several Common Gateway Interface programs in C, which he used to maintain his personal homepage, he extended them to work with web forms and to communicate with databases, called this implementation "Personal Home Page/Forms Interpreter" or PHP/FI. PHP/FI could be used to build dynamic web applications. To accelerate bug reporting and improve the code, Lerdorf announced the release of PHP/FI as "Personal Home Page Tools version 1.0" on the Usenet discussion group comp.infosystems.www.authoring.cgi on June 8, 1995. This release had the basic functionality that PHP has today; this included Perl-like variables, form handling, the ability to embed HTML. The syntax was simpler, more limited and less consistent.
Early PHP was not intended to be a new programming language, grew organically, with Lerdorf noting in retrospect: "I don't know how to stop it, there was never any intent to write a programming language I have no idea how to write a programming language, I just kept adding the next logical step on the way." A development team began to form and, after months of work and beta testing released PHP/FI 2 in November 1997. The fact that PHP was not designed, but instead was developed organically has led to inconsistent naming of functions and inconsistent ordering of their parameters. In some cases, the function names were chosen to match the lower-level libraries which PHP was "wrapping", while in some early versions of PHP the length of the function names was used internally as a hash function, so names were chosen to improve the distribution of hash values. Zeev Suraski and Andi Gutmans rewrote the parser in 1997 and formed the base of PHP 3, changing the language's name to the recursive acronym PHP: Hypertext Preprocessor.
Afterwards, public testing of PHP 3 began, the official launch came in June 1998. Suraski and Gutmans started a new rewrite of PHP's core, producing the Zend Engine in 1999, they founded Zend Technologies in Ramat Gan, Israel. On May 22, 2000, PHP 4, powered by the Zend Engine 1.0, was released. As of August 2008 this branch reached version 4.4.9. PHP 4 will any security updates be released. On July 14, 2004, PHP 5 was released, powered by the new Zend Engine II. PHP 5 included new features such as improved support for object-oriented programming, the PHP Data Objects extension, numerous performance enhancements. In 2008, PHP 5 became the only stable version under development. Late static binding had been missing from PHP and was added in version 5.3. Many high-profile open-source projects ceased to support PHP 4 in new code as of February 5, 2008, because of the GoPHP5 initiative, provided by a consortium of PHP developers promoting the transition from PHP 4 to PHP 5. Over time, PHP interpreters became available on most existing 32-bit and 64-bit operating systems, either by building them from the PHP source code, or by using pre-built binaries.
For PHP versions 5.3 and 5.4, the only available Microsoft Windows binary distributions were 32-bit x86 builds, requiring Windows 32-bit compatibility mode while using Internet Information Services on a 64-bit Windows platform. PHP version 5.5 made. Official security support for PHP 5.6 ended on 31 December 2018, but Debian 8.0 Jessie will extend support until June 2020. PHP received mixed reviews due to lacking native Unicode support at the core language level. In 2005, a project headed by Andrei Zmievski was initiated to bring native Unicode support throughout PHP, by embedding the International Components for Unicode library, representing text strings as UTF-16 internally. Since this would cause major changes both to the internals of the language and to user code, it was planned to release this as version 6.0 of the language, along with other major features in development. However, a shortage of developers who understood the necessary changes, performance problems arising from conversion to and from UTF-16, used in a web context, led to delays in the project.
As a result, a PHP 5.3 release was created in 2009, with many non-Unicode f