一直以后, 只知道打开浏览器, 输入网址便可以上网浏览网页, 但是当认真琢磨起这web编程的时候, 对于很多细节却是感觉很迷惑, 在慢慢的学习中, 才逐渐有了些了解。

  web有client/server(客户端和服务器端), 平时我们上网所用的broswer(浏览器)就是client,当我浏览goolge、amazon等这些网站时, 这些网站都是运行在服务器上的, 所以我们才能够访问这些网站。 那么从网页到服务器到底是怎么运行起来的呢。 就那我们在在网站上进行用户登录这个例子来说:

   我们首先是通过浏览器打开我们要登录的网站, 然后在表单中填入帐号和密码,点击登录,登录成功之后我们就看到了一些属于自己所拥有的东西。 我们在浏览器上所看到的网页其实是一个个的HTML文件, 我们在网页上的表单中填写的用户名和密码等数据会被浏览器通过HTTP协议传送到web服务器, 服务器则会验证用户,成功后将用户的信息和一些必要的信息生成HTML页面返回给浏览器。

  那么服务器是如何要怎么处理发送过来的各种数据的呢? 答案就是CGI脚本。

  CGI(Common Gateway Interfact)通用网关接口,是一种重要的互联网技术, 可以让一个客户端,从网页浏览器想执行在web服务器上的程序,请求数据。CGI描述了客户端和服务器之间传输数据的一种标准。 更多信息可以上网查阅。当然这样的说法有点太官方, 让人不太好理解。 在我的理解, 通过用一种脚本语言来编写一个CGI脚本程序, 服务器中每个脚本都是用来处理相应的数据的。 浏览器向服务器传送数据, 服务器就会用相应的CGI脚本去处理数据, 并返回一定的页面信息。 其大体流程可以用下面这幅图来简单示译。

  用户通过浏览器来浏览网页, 点击一些超链接或者是填写表单信息来向服务器发送请求, 服务器通过调用CGI脚本程序来处理数据并返回用户请求的内容。 关于浏览器和服务器的之间的数据请求、响应等知识, 需要详细了解HTTP协议,《HTTP The Definitive Guide》这本书挺不错的。

  CGI脚本可以通过任何脚本语言来实现, 只要这个语言可以在这个系统上运行。shell script、Python、Ruby、PHP和C都可以用来编写CGI脚本。 至于选择哪一种语言, 我感觉应该是全凭个人喜好了。

  CGI脚本执行所需要的数据一方面是来自浏览器页面的请求, 另一方面就主要是来自服务器端的数据库, 像用户信息之类的数据全都是存储在数据库中的。

  虽然现在的web开发已经几乎没人在用CGI脚本了, 但是想逐渐了解web编程, 我感觉还是有必要去熟悉最初的工作流程的。

  这样, web编程被分为了三部分, HTML文件的编写, CGI脚本的编写和数据库的数据存储和相关接口的实现。

web编程的初步认识的更多相关文章

  1. MVC 5 Web编程2 -- URL映射

    ASP.NET MVC 5 Web编程2 -- URL映射(路由原理) 2015-02-12 08:50 by hangwei, 704 阅读, 5 评论, 收藏, 编辑 本章将讲述ASP.NET M ...

  2. PHP求职宝典系列——PHP Web 编程篇

    PHP Web 编程篇 form表单 1.简述 POST 和 GET 传输的最大容量分别是多少? GET 方法提交的表单数据被附加到 URL 上,并作为URL 的一部分发送到服务器端. URL 的长度 ...

  3. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  4. Java Web 编程

    Java Web 编程 21天学通JAVA-WEB开发:http://files.cnblogs.com/files/maven-chao/Java_Web.zip

  5. python web编程-概念预热篇

    互联网正在引发一场革命??不喜欢看概念的跳过,注意这里仅仅是一些从python核心编程一书的摘抄 这正是最激动人心的一部分了,web编程 Web 客户端和服务器端交互使用的“语言”,Web 交互的标准 ...

  6. 物联网网络编程、Web编程综述

    本文是基于嵌入式物联网研发工程师的视觉对网络编程和web编程进行阐述.对于专注J2EE后端服务开发的童鞋们来说,这篇文章可能稍显简单.但是网络编程和web编程对于绝大部分嵌入式物联网工程师来说是一块真 ...

  7. 《Web编程入门经典》

    在我还不知道网页的基础结构的时候,我找过很多本介绍Web基础的书籍,其中这本<Web编程入门经典>,我认为是最好的. 这本书内容很全面.逻辑很严谨.结构很清晰.语言文字浅显易懂. 看这本书 ...

  8. 全部编程皆为Web编程

    原文作者:Jeff Atwood   原文链接:http://blog.codinghorror.com/all-programming-is-web-programming Michael Brau ...

  9. Go web编程实例

    1. go web编程入门 记录个web编程例子方便以后使用. 主要有: chan的使用(带缓存,不带缓存) client发起get/post请求 server解析get/post请求参数 http. ...

随机推荐

  1. HRBUST 2072 树上求最大异或路径值

    一个很经典的套路 思想是 F [u,v] = F[1,u] ^ F[1,v] 这样就转化成了n个数两两异或 求最大值 可以用字典树来做 每次用当前数去树中寻求最大xor值 然后把这个数字插进去 就相当 ...

  2. spring mvc 官方下载

    1.进入https://spring.io 2.选择projects选项卡 3.点击spring frawewoek 4.选择右中方的Reference 5.选择2.3章节 6.点击 Distribu ...

  3. numpy里*与dot与multiply

    一.*  , dot()   multiply() 1, 对于array来说,(* 和 dot()运算不同, * 和 multiply()运算相同) *和multiply() 是每个元素对应相乘 do ...

  4. RGB(16进制)_转_TColor

    ZC:内存中 COLORREF就是一个DWORD(从定义"COLORREF = DWORD;"就可以看出来),但是 具体的byte R/G/B 的位置是怎么方式的? ZC:Wind ...

  5. numpy常用函数之randn

    numpy中有一些常用的用来产生随机数的函数,randn就是其中一个,randn函数位于numpy.random中,函数原型如下: numpy.random.randn(d0, d1, ..., dn ...

  6. 高性能Js—数据存取

    数据存取 JavaScript中四中基本的数据存取位置 字面量:不存于某个变量内 本地变量:var定义的 数组元素 对象成员 字面量.全局变量读取速度 > 数组项.对象成员 .因为局部变量存在于 ...

  7. html5 frameset5内嵌框架集

    利用html5 frameset内嵌框架简单做一个网页,网页的布局大体如下: 我们可以将其分为四个部分: 第一部分:top图片栏 第二部分:left链接栏 第三部分:right内容栏 第四部分:网页整 ...

  8. ural 2021 Scarily interesting!(贪心)

    2021. Scarily interesting! Time limit: 1.0 secondMemory limit: 64 MB This year at Monsters Universit ...

  9. java maven、springmvc、mybatis 搭建简单Web项目学习笔记

    前言: 空余的时间,学学 Java,没准哪天用的到: 环境搭建折腾了好几天,总算搞顺了,也做个学习笔记,以防后面会忘记: 一.安装文件及介绍 JDK:jdk1.8.0 77 eclipse-maven ...

  10. python MySQLdb连接mysql失败(转载)

    最近了解了一下django,数据库选用了mysql, 在连接数据库的过程中,遇到一点小问题,在这里记录一下,希望能够对遇到同样的问题的朋友有所帮助,少走一些弯路.关于django,想在这里也额外说一句 ...