一直以后, 只知道打开浏览器, 输入网址便可以上网浏览网页, 但是当认真琢磨起这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. LeetCode——sum-root-to-leaf-numbers

    Question Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a ...

  2. SCOI2017酱油记

    Day0: 虽然是8点30开始模拟赛,还是设了个7点的闹钟调节生物钟.结果硬生生睡到7点40... 打开题目:T1期望,直接弃掉(到现在都不会期望已经可以滚粗了..) T2一眼可做,恩,先写个暴力.然 ...

  3. DS 和【ADDRESS】学习记录

    CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址. 内存单元由2部分组成. 8086CPU中,内存地址由以下组成. 1:段地址 2:偏移地址 8086CPU中,有一个DS寄存器地址,通常用 ...

  4. Qt 自定义PushButton

    http://blog.csdn.net/zddblog/article/details/11116191 功能:鼠标弹起并在按键区域内时,按键响应.并实现normal.hover.pressed效果 ...

  5. 理解i++和++i

    理解i++和++i i++和++i是C/C++基础知识,i++是先传值后自增,++i是先自增后传值.汇编源码如下: int xx; int x = 1; 00F61702 mov dword ptr ...

  6. gbk编码汉字转换成对应的十进制十六进制的值

    http://www.mytju.com/classcode/tools/urlencode_gb2312.asp

  7. file.seek()方法引出的文本文件和二进制文件问题

    问题的起因 菜鸟教程上有一段关于file.seek()方法的讲解,先简短描述一下seek()方法: seek(offset, whence)方法用于移动文件读取指针到指定位置 参数offset--开始 ...

  8. node.js 上传图片

    依赖库 connect,gm,imagemagick,image-size connect:中间件 gm,imagemagick:用来处理图片如缩放.切割.添加文字水印等 image-szie:获取图 ...

  9. hive_异常_01_ Terminal initialization failed; falling back to unsupported

    一.异常现象 hive初始化数据库时,在执行了 schematool -initSchema -dbType mysql 这个命令时,终端抛出如下异常: [ray@rayner bin]$ schem ...

  10. LeetCode OJ:Binary Tree Inorder Traversal(中序遍历二叉树)

    Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...