Server takes request, compiles it, prepares it, and delivers it
Web technologies lesson 1
Why am I learning web from a guy named r00ster? Real name Nick Hepner (Rooster’s fine) Web development since 1998 More than 150 professional site launches All scales of website.
Scope of Course *AMP stack Fundamentals, HTML, PHP Components of Web Relational Databases Code Versioning and Environments Web dev workflows and best practices Web site builds
Open Source Defined by the Open Source Initiative as software that contains these properties: Free Redistribution Include Source Code or means to obtain source code Allow modifications and “derived works” Cannot discriminate against group or persons Cannot discriminate against specific endeavor Redistributable license (no new agreements are issued) License cannot be product specific License cannot restrict other software License must be technology-neutralhttp://opensource.org/docs/osd
Open Source vs. Proprietary Software Classic argument Nobody’s gonna win it and I’m tired of arguing it. You will be tooProprietary (closed source) Open Source• Better funding leads to higher quality • Crowd sourced development• Better support • Modifiable• Tightly Focused • Designed for Integration• Better suited to specific business • Fast bug fixes needs • Low level of entry • FREE
What is a browser? Application that translates web code into rendered web pages. Firefox Chrome Internet Explorer Safari Opera Lynx Thousands of others (http://www.user-agents.org)
What is a server? Term is “overloaded” – can mean many things Physical hardware (will refer to as “machine”) Virtual instance (will refer to as “Virtual Machine” or “VM”) Software package (will refer to as “server”) A server will… Accept requests Process (compile, parse, etc.) request Prepare response Deliver response Web Servers IIS Nginx Apache
…no, really? Global system of interconnected computer networks that utilize TCP/IP to serve data and documents such as inter-linked hypertext (HTML) documents, VoIP, a nd IPTV Simply: Lots of computers that can talk to each other. http://en.wikipedia. org/wiki/Internet
How it seems to work… User requests website User receives website User
How it actually works…User ISP 1. User Requests website 2. ISP routes request 3. Routing servers pass request to other routing servers closer to end point server. 4. F*$%#@ Russia 5. Web Server processes request 6. Web Server returns Request.
What is a database? System that stores and makes available structured digital data. Data, in this context, will refer to any unique digital information must be stored for future reference.
A quick word about OperatingSystems… “Most” web sites are hosted on Linux. Larger enterprise sites tend to be hosted on windows, but not exclusively. Can develop on one system and deploy to another using cross-platform techniques. Some limitations.
Standard Technology Stacks “Technology Stack” in web terms refers to the platform a website lives on and the software packages that support it. One word answer to the question “What kind of web development do you do?” Some contextual meaningsStack Name TechnologyLAMP Linux, Apache, MySQL, PHPWAMP Windows, Apache, MySQL, PHPMAMP Macintosh (Apple), Apache, MySQL, PHPWIMP Windows, IIS, MS SQL (sometimes MySQL), PHPXAMPP Multiple systems (Cross compatible - X), Apache, MySQL, PHP, PerlLAOJ Linux, Apache (Tomcat), Oracle, Java
Compiled Languages, ScriptedLanguages and Markup Compiled Languages generate machine code from source code. (.NET, C#, Java, Python) Scripted (interpreted) languages. “Step-by-step” execution of source code. (PHP, Ruby, Coldfusion) Compiled languages are much faster, but more complex. Modern caching strategies make this irrelevant for web. I’m not getting into this argument. Markup (HTML, XML, YAML, Wikitext, BB Code) is a document description that uses syntax to differentiate text from display or meta information. Templating language, no logic
Cascading Style Sheets “Presentation Layer” for HTML pages. Allows customized instruction for browser to read and display HTML tags. Makes websites pretty. Interpreted slightly differently by major browsers (I’m lookin at you IE ) Unexpectedly difficult to master.
eXtensible Markup Language(XML) Used to encode documents that are both machine readable and human readable. Used to transfer data between systems and publish content (RSS, Atom, etc.) Used in most “modern” word processors.