2018-04-09

                                        web基础概述


什么是web

web:网状物、在计算机术语中,通常指代网络的意思

各种网络的划分:根据网络中主机数量的不同以及工作区域的不同

        局域网:很小范围的一个网络区段,一般允许几十台、几百台电脑联网互相通信

        城域网:区域范围较大

        广域网:几十里到几千里


web软件指代是什么?

指代的就是网络软件,通过网络连接,执行一定的功能处理的软件

目前来说常规的web软件,一般指代的都是网站!


网站:网络软件/网站

静态网站:使用HTML/CSS/JS开发的用于信息展示的网页共享

网络软件(动态网站):使用HTML/CSS/JS开发的软件界面用于和用户交互数据,交互的数据通过网络传输给后端处理程序,程序执行数据运算,将运算的结果存储到数据库中,具备这样的数据运算和处理流程的网站称为动态网站/网络软件

切记:动态,不代表动画!

动画:网页中有个元素动起来了…

动态:网页中展示从数据库中读取的数据!


什么是web开发?

市场调研    [产品经理-市场人员]

需求分析    [产品经理-(潜在)客户-需求分析工程师]

详细设计    [产品经理-架构师-开发人员]

代码开发    [开发人员-测试工程师]

代码检查测试    [ 测试工程师]

软件部署维护    [部署维护工程师]


市场人员

产品经理

需求分析工程师    [沟通良好的开发人员扮演]

架构师                 [技术非常牛X的技术总监类人物(开发人员扮演)]

开发人员              [开发人员友情演出]

测试工程师           [开发人员扮演(工作量不饱和|技术不牛X)]

运维工程师           [开发人员扮演(写不了代码的开发人员)]


技术沉淀|技术经验|业务沉淀|业务经验



web开发的步骤?(100%)

详细设计(50%)-> 代码开发(20%)-> 项目部署(10%)

详细设计:以word文档的形式,将代码的结构、文件的名称、函数的名称、变量的名称、函数/类型之间调用关系详细描述出来的过程!

 代码开发:将详细设计中设计的软件,从文档转换成代码即可!抄写代码!

 重点:不是代码开发过程,而是代码的测试和解决问题的过程!

 项目部署:将开发好的项目,部署到网络中进行运行,让其他人可以访问的过程


 服务器:专门用于提供服务的机器

             硬件服务器:一般指代的是电脑主机[个人PC、刀片服务器]

             软件服务器:是一个软件,将开发人员开发的好的项目放在软件的某个文件夹中,该软件服务器可以通过                                  软件中的网络处理代码、文件IO等奖该文件夹中的项目放到网络中让其他人访问的过程



计算机中文件

文本文件:使用记事本打开不会出现乱码的文件

二进制文件:使用记事本打开会出现乱码的文件

 

代码开发:

所有的代码开发,都是基于编程语言的

所有的代码源文件开发,都是文本文件开发

所有的代码源文件,都是文本文件

代码开发:只要有一个记事本软件,就可以进行软件开发

 

使用高性能的开发软件,有利于提升开发效率

 

web软件开发:

开发工具:记事本/sublime/editplus/ue/us/vc/vim../pycharm/eclipse

软件结构:网络让别人网络[数据共享]

web软件:开发的web项目

web软件部署:将web项目放到web服务器中,让外界可以通过网络访问

web网关接口:外界和项目中的数据传输的通道,所有外界的请求都必须经过网关接口来访问项目中的数据,有利于项目控制数据安全性问题!

 

2018-04-09_第1张图片

 

 

 

简单的web软件开发

代码编写

web接口:开发一个接口函数

            def application(..):

                pass

web服务器:python内置的服务器

实现了web服务网关接口的服务器[web server gateway interface:wsgi]

wsgiref.simple_server.make_server()

 

核心代码解释

web服务器:使用python内置的实现了wsgi协议的web服务器

from wsgiref.simple_server import make_server


web接口函数:网关接口函数,所有浏览器发送的请求,都要进入该函数

def application(env, response):

     # env:请求环境参数

     # response:响应数据参数

     response(‘200 OK’, [‘Content-type’, ‘text/html;charset=utf-8’])

     # 返回数据:因为要通过网络传输,要将数据编码成字节数据进行传输

    msg = ‘hello web!’.encode(‘utf-8’)

    return [msg]


将接口函数部署到服务器

http = make_server(‘’, 8000, application)


启动服务器

http.serve_forever()

 

 web基础技能点[术语]

 

server:服务器,服务端:专门用于提供网络访问服务的机器


client:客户端,在网络数据访问过程中,扮演访问者角色的机器


request:请求,客户端向服务器发起的一次数据申请,一般表现为浏览器中访问了一个url地址


response:响应,一般指代服务器端给客户端浏览器返回的一次数据


ip地址:一般是4组二进制数据表示,常见的是4组0~255十进制数据表示一段数字,表示网络中的唯一一台计算                 机!->115.239.211.112


port端口:一台电脑中安装的软件会有很多,同时运行的软件也会有很多;端口指代的说就是某个软件通过网络交                互数据的出入口!不同的软件端口不一样。

               一般情况下,如果软件开发过程中,尽量不要使用8000以下的端口,一般可能会被系统占用!


扩展:查看端口号和对应的进程

          打开命令行:执行命令:netstat -ano查看所有正在运行的端口

          组成部分:协议-本地地址-外部地址-状态-PID(process id 进程编号)

          打开任务管理器:查看对应的PID,找到对应的程序进程,就可以执行强制关闭!


网络数据传输协议:

为了保证数据传输双方能正确传输数据并且能正确解析数据而协商得到的一个工具

常见的处理协议有很多种!不同的操作目的有不同的协议

        传输文件:文件传输协议file transfer protocal:ftp

        访问网站网页:超文本文件传输协议html transfer protocal: http

        网络收发邮件:pop3 / smpt / imap / ..

 

网络数据传输模型[ISO组织(欧洲计算机制造协会联盟) OSI(开放互联)]

网络传输模型:OSI/RM模型

 

HTTP & HTTPS


2018-04-09_第2张图片

加密:将自然人能看懂的数据,通过数学算法将数据打乱、运算、重排等等各种混淆操作,让数据转换成乱码                 数据,乱码数据就是被加密过的的一般人看不懂的数据,实现了数据的安全防护

明文:原本的数据

密文:加密后的数据

单向加密:只能加密,不能解密!一般都是单向数据算法,常见的如单向散列算法MD5;单向哈希算法SHA256;                 有很广泛的用途,如用户的登录密码


双向加密:既能加密,也能解密

双向对称加密:加密和解密使用的同一套密钥

双向非对称加密:加密和解密使用的不同的密钥[公开的加密密钥(公钥)|私密的解密密钥(私钥)]

HTTPS的处理:HTTPS提供了一个非对称加密的通道用于传输数据,所以说提供了安全通道的超文本传输协议


数字签名:网站证书;证明网站是本人!身份证证明你是你自己!

数字签名证书~民间机构进行维护!

 

 

请求request,响应response

请求:客户端向服务器发送数据[数据长度、编码、格式等等(数据格式)]

响应:服务器向客户端发送数据[数据长度、编码、格式等等(数据格式)]


请求头request header:描述请求中包含数据格式

响应头response header:描述响应数据的数据格式

请求体request body: 请求中包含数据

响应体response body:响应中包含数据

 

请求方式:根据不同的数据请求操作,HTTP1.1标准中制定了8种请求方式

GET

POST

PUT

DELETE

OPTIONS

TRACE

HEADER

CONNECT


在项目开发过程中,发现数据交互就是客户端和服务器的交互,交互的数据简短不需要保密,比较长/大的数据需要一定的保密等简单的要求,所常规项目中一般只使用两种请求方式

get:传话方式,只能传递简单的字符串数据,长度收到限制,传输的内容展示在url地址中

post:送信方式,能传递复杂数据[二进制数据],长度一般受服务器的限制,传输的内容包含在请求体中

你可能感兴趣的:(2018-04-09)