一直以后, 只知道打开浏览器, 输入网址便可以上网浏览网页, 但是当认真琢磨起这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脚本的编写和数据库的数据存储和相关接口的实现。

最新文章

  1. AlertDialog.Builder弹出对话框
  2. Jenkins安装部署
  3. iOS 解惑
  4. POJ 2503 Babelfish
  5. 共享内存 最快IPC 的原因
  6. python 使用dict和set
  7. PostgreSQL和GreenPlum数据库的区别
  8. C#多线程及GDI(Day 23)
  9. sql数据库的备份还原问题
  10. HDU 2846 Repository(字典树)
  11. vscode 停用插件自动更新
  12. 排序—时间复杂度为O(n2)的三种排序算法
  13. 装饰器模式 Decorator 结构型 设计模式 (十)
  14. React(上)
  15. Java语言之循环基础;各个语句的区别
  16. url编码解码的问题(urlencode/quote)
  17. 李宏毅机器学习笔记4:Brief Introduction of Deep Learning、Backpropagation(后向传播算法)
  18. 关于spring中的事件体系
  19. win7 精简板 安装ardunio uno r3驱动
  20. Python入门-模块4(序列化----json模块和pickle模块)

热门文章

  1. BZOJ3243/UOJ121 [Noi2013]向量内积
  2. 关于synchronized关键字
  3. 一个最简单的JMeter测试流程
  4. Eclipse下利用Maven创建SpringBoot的Restful风格程序
  5. shitf+tab
  6. SharedPreferences概述
  7. asp.net 锚点
  8. jenkins自动发送邮件配置
  9. poj3252 数位dp
  10. jar包作用