CS即客户端、服务器编程:
客户端、服务端之间需要使用Socket,约定协议、版本(往往使用的协议是TCP或者UDP),制定地址和端口,就可以通信了。
客户端、服务端传输数据,数据可以有一定的格式,双方必须线约定好。
BS编程,即Browser、Server开发:
Browser浏览器,一种特殊的客户端,支持HTTP(s)协议,能够通过URL向服务端发起请求,等待服务端返回HTML等数据,并在浏览器内可视化展示的程序。
Server,支持HTTP(s)协议,能够接受众多客户端发起的HTTP协议请求,经过处理,将HTML等数据返回给浏览器。
本质上来说,BS是一种特殊的CS,即客户端必须是一种支持HTTP协议且能解析并渲染HTML的软件,服务端必须是能够接收客户端HTTP访问的服务软件。
HTTP协议底层基于TCP协议实现。
BS开发分为两端开发:
(1) 客户端开发,或称前端开发。HTML,CSS,JavaScript等。
(2)服务端开发,Python有WSGI、Flask、Tornado等。
HTTP协议
协议
HTTP协议是无状态协议。
同一个客户端的两次请求之间没有任何关系,从服务器端角度来说,它不知道这两个请求来自同一个客户端。
cookie
键值对信息。
浏览器发起每一请求时,都会把cookie信息发给服务器端。
是一种客户端、服务端传递数据的技术。
服务端可以通过判断这些信息,来确定这次请求是否和之前的请求有关联。
一般来说cookie信息实在服务器端生成,返回给客户端的。
客户端可以自己设置cookie信息。
URL组成
URL可以说就是地址,uniform resource locator 统一资源定位符,每一个链接指向一个资源供客户端访问。
schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]
例如,通过下面URL访问网页:
http://www.magedu.com/pathon/index.html?id=5&name=python
访问静态资源时,通过上面的这个URL访问的是网站的某路径下的Index.html文件,而这个文件对应磁盘上的真实的文件。就会从磁盘上读取这个文件,并把文件的内容发挥浏览器端。