web编程的初步认识
一直以后, 只知道打开浏览器, 输入网址便可以上网浏览网页, 但是当认真琢磨起这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编程的初步认识的更多相关文章
- MVC 5 Web编程2 -- URL映射
ASP.NET MVC 5 Web编程2 -- URL映射(路由原理) 2015-02-12 08:50 by hangwei, 704 阅读, 5 评论, 收藏, 编辑 本章将讲述ASP.NET M ...
- PHP求职宝典系列——PHP Web 编程篇
PHP Web 编程篇 form表单 1.简述 POST 和 GET 传输的最大容量分别是多少? GET 方法提交的表单数据被附加到 URL 上,并作为URL 的一部分发送到服务器端. URL 的长度 ...
- Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”
Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...
- Java Web 编程
Java Web 编程 21天学通JAVA-WEB开发:http://files.cnblogs.com/files/maven-chao/Java_Web.zip
- python web编程-概念预热篇
互联网正在引发一场革命??不喜欢看概念的跳过,注意这里仅仅是一些从python核心编程一书的摘抄 这正是最激动人心的一部分了,web编程 Web 客户端和服务器端交互使用的“语言”,Web 交互的标准 ...
- 物联网网络编程、Web编程综述
本文是基于嵌入式物联网研发工程师的视觉对网络编程和web编程进行阐述.对于专注J2EE后端服务开发的童鞋们来说,这篇文章可能稍显简单.但是网络编程和web编程对于绝大部分嵌入式物联网工程师来说是一块真 ...
- 《Web编程入门经典》
在我还不知道网页的基础结构的时候,我找过很多本介绍Web基础的书籍,其中这本<Web编程入门经典>,我认为是最好的. 这本书内容很全面.逻辑很严谨.结构很清晰.语言文字浅显易懂. 看这本书 ...
- 全部编程皆为Web编程
原文作者:Jeff Atwood 原文链接:http://blog.codinghorror.com/all-programming-is-web-programming Michael Brau ...
- Go web编程实例
1. go web编程入门 记录个web编程例子方便以后使用. 主要有: chan的使用(带缓存,不带缓存) client发起get/post请求 server解析get/post请求参数 http. ...
随机推荐
- java深入探究08-连接池,分页
1.连接池 1)自定义连接池 思路:定义一个类Pool->添加4个属性(最大连接数,初始化连接数,当前连接数,用来存放连接对象的LinkList集合对象)->定义一个createConne ...
- 简单的文件上传的下载(动态web项目)
1.在页面中定义一个form表单,如下: <!-- 文件上传 --> <form action="${pageContext.request.contextPath}/Fi ...
- MyEclipse+PyDev配置搭建Python开发环境
打开help-> install from catalog 输入pydev查找并安装pydev 根据提示进行安装,安装完后重启myeclipse
- JAVA题库01
说出一些常用的类,包,接口,请各举5个 常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer java ...
- 一个渣渣tomcat的学习成果.
//////////////////////////////////////写在前面////////////////////////////////////// 时隔几个月,恢复更新了,之前由于一些私 ...
- mac中的echo颜色输出
mac: echo "\033[1;36mSister Lin Fall from the Sky\033[0m" ubuntu: echo -e "\e[1;36mSi ...
- js中判断数据类型
一般来说,可以使用typeof来判断数据类型,但是数组,对象和null的结果都是object,那么如何区分这三类呢?可以使用如下方法: var arr = []; var obj = {} var e ...
- CentOS 6.8安装Docker V1.0
rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum -y install do ...
- yeomen/bower/grunt
yeomen: npm install yo angular-in-action project npm install -g generator-angular npm install -g gen ...
- C# WebApi 配置复杂路由不生效的问题
配置复杂路由不生效是由于优先级的关系,应该把默认路由放在最后. config.Routes.MapHttpRoute( name: "DynamicApi", routeTempl ...