JavaScript大杂烩0 - WEB基础知识

1. 协议小结:HTTP协议与TCP/IP协议

现代Web应用开发的基础是HTTP协议,那么HTTP协议与我们熟知的TCP/IP协议有什么关系呢?

这个要从网络通信模型说起,简单的说,计算机通信就像两个人在互相交流,怎样才能互相听懂呢?很简单,就是使用一致的语言和表达方式。

计算机之间通信的语言就是网络协议。网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,比如传统的开放式系统互连参考模型(OSI)中,定义了7个层次的模型,从底到上依次为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。一台设备上的第
n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互交换信息。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。

常见的3种协议各有不同特点,也就导致了有不同的适用范围。最适合使用在Internet上的就是TCP/IP
协议。该协议系统并没有使用传统的7层,而是提出了简化的4层模型,从底到上依次为:网络接口层,网络层,传输层,应用层。同样的,只有为每一层定义好交流的协议,网络中的计算机之间才能互相通信。例如:网络层的IP协义,传输层的FTP,UDP,TCP协议等,应用层的HTTP,SMTP,POP3,FTP,TELNET等协议。

HTTP协议是一个叫超文本传输协议的应用层协议,是提供网页服务的协议。没有HTTP
协议是不能浏览网页的,但是其他的像邮件服务(只要协议在)都还是正常的。

2. 请求过程:HTTP请求

我们在浏览器中访问网站,与服务器进行交互都是通过HTTP请求发出的。当你点击一个连接时,浏览器首先找到站点的IP地址(通过DNS来实现)。在找到IP地址后建立TCP连接,连接建立后我们就可以发送请求了。每个交互都会转化成相应的HTTP请求,最常用的如GET(第一次请求页面),HEAD,POST(附带参数,请求页面),PUT等等。转化后的HTTP请求是有一定格式的,这个有兴趣的可以参考相应的HTTP请求格式说明。

服务器处理完请求后,会返回HTTP响应给客户端并断开连接,这个响应同样包含了很多的信息。浏览器收到响应以后,解析该响应并显示在浏览器中。响应内容中最有用的就是响应的状态(数字表示,如200表示成功,404表示没找到页面等)和返回请求的各种文本(如页面HTML,CSS文件,JavaScript文件等等)。

3. HTML语言

浏览器从服务器获得到HTML后,就负责解释并展现HTML表示的内容。HTML代表超文本标记语言,其最初的目的就是格式化文本,方便浏览器解释,并展示给客户端。但是随着网络的发展,网络传输和显示的内容也日渐丰富,页面不再只包括静态的图片和文字,而是包括了列表,选项,交互等内容。扩充后的HTML提供了更为丰富的标签。其中最突出的就是<form>表单,它是应用程序与用户进行交互的前提。<form>表单提示浏览器,这个标签与</form>标签之间的内容会返回给服务器。表单的数据会被“投递”给服务器处理,这个过程就是回发。

典型的HTTP请求通常就是先进行GET获取,再进行POST投递 -
前者获取最初的文档,后者用于在必要的时候将数据返回给服务器,进行更为复杂的计算和处理。

直接使用HTML开发无疑是很麻烦的,为了更好的完成现代动态Web开发,不同的公司提供了不同的运行环境和开发工具,微软提供的就是ASP.NET。它提供了很多集成的对象,简化了开发的难度。但是还是有很多的问题不能很好的解决。比如HTTP是无状态的,如何保持页面POST前后的状态,实在是一个困难的问题。

4. Web开发思想

从上面的分析我们可以看到,归根结底,Web开发无非是要处理两大问题:

(1). 在无连接的HTTP协议上通过HTML管理用户的界面

(2). 在无状态的HTTP协议上管理应用程序的状态。

虽然有像ASP这样的框架出现了,使得Web的开发更加简单,但是开发者仍然要自行开发许多的“标准”功能,例如安全系统,管理UI状态,数据访问等等。所有这一切促使了更高级,更智能的像ASP.NET这样的编程框架的产生。

了解了这个基本问题,以及让开发者开发更快速,更简单这样最直接的目的,我们可以想象,具体的开发框架必定会继续向前发展,不断推陈出新,并提供更加完整,更加智能的功能。

当然了,HTML5中WebSocket的出现已经引发了有连接的状态,这个在前面的文章中已经提及了,就不多说了。

时间: 2024-09-27 22:36:58

JavaScript大杂烩0 - WEB基础知识的相关文章

Web前端学习①Web基础知识

<1>Web前端Web基础知识 一.前端工程师的角色 一个网站的建设需要以下角色: ①策划人员:方案 ②美工/UI设计师:设计图 (.psd  .rp) ③前端工程师:静态网页 ④后端工程师:获取数据 ( Java   PHP  .NET) 二.Web的基础知识 1.Web(万维网)与Internet(因特网) ①Internet简介:定义.主要服务.基本实现技术 ②Web与Internet关系 Web是Internet提供的服务. ③Web简介:万维网 2.Web的工作原理 ①Web的工作原

Python全栈开发之17、tornado和web基础知识

一.web基础知识 学习web框架之前,先来看一下web基础知识,首先要明白其本质就是socket,用户对应一个socket客户端,但是如果从socket开始开发web应用程序那么效率太了,正确的做法是底层socket处理代码由专门的服务器软件实现,而对于真实开发中的python web程序来说也是一般会分为两部分:服务器程序和应用程序.服务器程序负责对socket服务器进行封装,并在请求到来时,先经过web服务器,对请求的各种数据进行整理封装.之后web服务器将封装好的数据传递给应用程序,应用

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回

web基础知识(二)关于ajax,Jquery传值最基础东西

这次还是一些关于jQuery,ajax前后台传值情况, 是自己在做点小东西过程中遇到的,记录下来为自己也方便别人 列表很多,点击编辑和删除无刷新的进行操作的话,肯定是ajax了,因为无刷新嘛,可能有的朋友会说直接传值,传ID到Action删除不就OK了,用得着写js么,纯粹自己找麻烦嘛. 其实这里重点是无刷新的啦, 这个上传后到这里来,有个预览功能,把本次的全部预览,如果全部刷新的话,那么刚才上传的就不会在这个页面了,so,还是采用无刷新的比较好. 点击编辑跳到一个新的页面的时候有两种方法可以选

web基础知识(三)关于ajax,Jquery传值最基础东西

今天补充一下两个小功能,一个是关于radio单选框的情况,如何在前面选了后,传到后台,编辑修改的时候再次传回来,并且在当时选的那个上:再一个就是关于添加小标签的时候添加接着弹出在下面,并点击出现删除. 一:radio 1 <div class="newlylist"> 2 <div class="newlyhead">图示商品:</div> 3 <div class="newlycontent">&

web基础知识

1. HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行 b)请求头 c)请求的内容,如果没有,就是空白字符 2)服务端->客户端(响应response)有三部份 a)响应行 b)响应头 c)响应的内容,如果没有,就是空白字符 2 HTTP请求头和响应头含义 1)请求(客户端->服务端[request]) GET(请求的方式) /books/java.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号) Accept: */*(客户端能接收

JavaScript大杂烩18 - Web开发的MVVM模式

MVC VS. MVP VS. MVVM  了解MVVM模式之前,我们先来简单了解一下从MVC到MVVM的变迁.这个变迁是耦合从紧到松的变迁,是对依赖处理的进化,是应对变化技术的成熟. MVC  MVC全名是Model View Controller, 是模型(model)-视图(view)-控制器(controller)的缩写,它用一种将业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.将系统进行MVC分层

day29—JavaScript中DOM的基础知识应用

转行学开发,代码100天--2018-04-14 JavaScript中DOM操作基础知识即对DOM元素进行增删改操作.主要表现与HTML元素的操作,以及对CSS样式的操作.其主要应用知识如下图: 通过对DOM的基本了解,还要通过代码实现对DOM的操作. 1.childNodes + nodeType 与children的区别 <ul id= "ull"> <li>1</li> <li>2</li> <li>3&l

ExtJS教程(2)--- Javascript类和对象基础知识

Javascript中的类其实就是一个function 如下面定义一个Person类 //定义一个类 function Person(){ this.name = 'jaune'; this.age = 18; } //创建一个对象 var person1 = new Person(); console.log(person1); /* * 控制台打出以下内容 * Person {name: "jaune", age: 18} */ 上面是一个简单的定义类及创建类的方法 //定义一个带