目录
网络编程
网络编程(WINSOCK\LINUX)
网络编程
1.概念
网络编程从大的方面说就是对信息的发送到接收,中间传输为为物理线路的作用
百度解析:网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理、代码、开发工具、数据库、服务器架设和网页设计这5部分。
2.代码分类
1.静态代码
静态代码:服务器不解析直接发送给客户端的部分,用做布局效果,一般不用于数据库操作
静态代码分html,javascript,css.
要学网络编程就先学html语言,javascript用于实现某些特效,css是样式语言,这3个语言组合起来,可以设计出美妙的网页效果。
2.动态代码
动态代码:服务器需要解析的部分,用作数据库连接操作等,
动态代码有php,jsp,asp
开发工具有很多种,我推荐一种,网络3剑客,其中dw是开发代码的,fw是做图的,flash是做动画的。数据库要结合你学的动态语言来选择,asp系列的,你可以使用access,大型点使用mySQL。php和mySQL是很好的搭档。
3.网络编程语言(汇编语言和高级语言)
网络编程语言主要包括了PHP、ASP、NET、JSP
1.PHP 即Hypertext Preprocessor(超文本预处理器),它是当今Internet上最为火热的脚本语言,其语法借鉴了C、Java、PERL等语言,但只需要很少的编程知识你就能使用PHP建立一个真正交互的Web站点。它与HTML语言具有非常好的兼容性,使用者可以直接在脚本代码中加入HTML标签,或者在HTML标签中加入脚本代码从而更好地实现页面控制。PHP提供了标准的数据库接口,数据库连接方便,兼容性强;扩展性强;可以进行面向对象编程。
2.ASP 即Active Server Pages,它是微软开发的一种类似HTML(超文本标识语言)、Script(脚本)与CGI(公用网关接口)的结合体,它没有提供自己专门的编程语言,而是允许用户使用许多已有的脚本语言编写ASP的应用程序。ASP的程序编制比HTML更方便且更有灵活性。它是在Web服务器端运行,运行后再将运行结果以HTML格式传送至客户端的浏览器。ASP程序语言最大的不足就是安全性不够好。 ASP的最大好处是可以包含HTML标签,也可以直接存取数据库及使用无限扩充的ActiveX控件,因此在程序编制上要比HTML方便而且更富有灵活性。通过使用ASP的组件和对象技术,用户可以直接使用ActiveX控件,调用对象方法和属性,以简单的方式实现强大的交互功能。 但ASP技术也非完美无缺,由于它基本上是局限于微软的操作系统平台之上,主要工作环境是微软的IIS应用程序结构,又因ActiveX对象具有平台特性,所以ASP技术不能很容易地实现在跨平台Web服务器上工作。
3.JSP即Java Server Pages,它是由Sun Microsystem公司于1999年6月推出的新技术,是基于Java Servlet以及整个Java体系的Web开发技术。 JSP和ASP在技术方面有许多相似之处,不过两者来源于不同的技术规范组织,以至 ASP一般只应用于Windows NT/2000平台,而JSP则可以在85%以上的服务器上运行,而且基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理,所以被许多人认为是未来最有发展前途的动态网站技术。
4.NET是ASP的升级版,也是由微软开发,但是和ASP却有天壤之别。NET的版本有1.1、2.0、3.0、3.5、4.0。是网站动态编程语言里最好用的语言,不过易学难精。NET2.0开始,NET把前台代码和后台程序分为两个文件管理,使得NET表现和逻辑相分离。NET网站开发跟软件开发差不多。NET的网站是编译执行的,效率比ASP高很多。NET在功能性、安全性和面向对象方面都做的非常优秀,是非常不错的网站编程语言。
4.网络模型
网络模型:描述网络的结构原理和工作原理
OSI参考模型:七层
Internet网络模型:四层
网络协议:指定层上进行数据交换的规则。
Internet的网络层协议:IP协议;DNS协议(辅助协议)
Internet的传输层协议:TCP协议;UDP协议。
https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B?fromModule=lemma_search-box
软件开发架构
规定了程序的请求逻辑、功能分块
1.C/S架构
Client:客户端
Server:服务端
"""
我们使用计算机下载下来的一个个app本质是各大互联网公司的客户端软件
通过这些客户端软件我们就可以体验到各个互联网公司给我们提供的服务
eg:
下载淘宝客户端 打开 体验淘宝服务端提供的购物服务
下载抖音客户端 打开 体验抖音服务端提供的视频服务
ps:一般情况下客户端与服务端交互需要互联网 但是有些不需要(因为客户端和服务端都在一台计算机上)
客户端:即将要去消费的客人
服务端:给客人提供服务的店
作为服务端必备的多个条件
1.24小时不间断提供服务
2.固定的地址
3.能够服务多个客人(高并发)
"""
2.B/S架构
Browser:浏览器
Server:服务器/端
"""
浏览器可以充当所有服务端的客户端
ps:B/S架构本质还是C/S架构
"""
3.两者差异
C/S架构
优势:不同的公司的客户端由不同公司独立开发,可以高度定制化客户端功能
劣势:需要下载才能使用
B/S架构
优势:不用下载直接访问
劣势:无法高度定制化,并且需要遵守很多规则
架构总结
ATM:三层架构
选课系统:三层架构
本质也属于软件开发架构的范畴
软件设计的大方向>>>:统一接口
微信小程序
支付宝小程序
网络编程前言
1.什么是网络编程
基于网络编写代码,能够实现数据的远程交互
2.学习网络编程的目的
能够开发CS架构的软件
3.网络编程的起源
最早起源于美国军事领域
想实现计算机之间数据的交互
最早的时候只能用硬盘拷贝,之后发明了网络编程
4.网络编程必备条件
是实现数据的远程交互
1.早期的滚筒电话 电话线
2.早期的大屁股电脑 网线
3.笔记本电脑、移动电话 网卡
ps:实现数据的远程交互的必备基本条件:物理连接介质
计算机网络的相关专业名词
计算机之间要想实现数据交互必须要‘连接’到一起
早期:联机
以太网:局域网与交换机
1.交换机
能够将所有的接入交换机的计算机彼此互联起来
2.广播
首次查找接入同一个交换机的其他计算机,需要朝交换机里面喊它
广播:交换机与其他服务器以‘一对多’的通讯模式,网络对每一台主机发出的信号都无条件复制并转发,所以的主机都可以接收到信息(无论需不需要)。典型的广播型网络就是有线电视网,通过接收所有的频道的信号,但只将一个频道的信号还原成画面,在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
3.单播
首次被查找的计算机回应查找它的计算机,并附带自己的mac地址
4.广播风暴
接入同一台交换机的多台计算机同时发广播
5.局域网
简单理解为有单个交换机组成的网络,在局域网内可以直接使用mac地址通信
局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。
6.广域网
简单理解范围更大的局域网
7.互联网
由所有的局域网、广域网连接到一起形成的网络
8.路由器
不同的局域网计算机之间是无法直接实现数据交互的,需要路由器连接。
路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。
路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。
OSI七层协议
OSI七层协议
规定了所有的计算机在远程数据交互的时候必须经过相同的处理流程、在制造过程中必须拥有相同的功能硬件
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
1.osi七层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
2.五层协议及每层常见的协议
常见的是整合之后五层
应用层
传输层
网络层
数据链路层
物理连接层
3.四层及常见物理设备
四层结构
应用层
传输层
网络层
网络接口层
""" 接收网络消息 数据由下往上传递
发送网络消息 数据由上往下传递"""
物理连接层
主要用于确保计算机之间的物理连接介质,接收数据(bytes类型、二进制)
数据链路层
1.规定了电信号的分组方式
2.以太网
规定了计算机在出厂的时候都必须有一块网卡,网卡上有一串数字
该数字相当于是计算机的身份证号码是独一无二的
该数字的特征:12位16进制数据
前六位是产商编号 后6位流水线号
该数字也称:以太网地址/MAC地址
网络层
IP协议和IP地址
IP协议:规定网络地址的协议,它定义的地址称为IP地址,网络地址规范由32位2进制表示
IP地址:规定了所有的接入互联网的计算机都必须有一个IP地址,类似于身份证号,IP地址是动态分配,不同的场所IP是不同的
IP地址特征:
IPV4:点分十进制
0.0.0.
255.255.255.255
ip地址一般写成四段十进制 eg:172.168.1.1
IPV6:能够给地球上的每一粒沙分一个IP地址
IP地址可以跨局域网传输
IPV6:fe80::1af9:8e90:6767:fd15%12(首选)
IP协议的作用:
1.每一台计算机分配IP地址
2.是确定哪些地址在同一个子网络
ps:IP地址可以用来标识全世界独一无二的一台计算机
mac地址
1.mac地址
是电脑的物理地址,是由12位16进制数数字组成,电脑在出厂就固定了,而且每块网络适配器的mac地址是唯一的,一般是不会手动去修改mac地址的,可以看成永远无法修改,如果是用户修改只是修改虚拟号,不是真实的mac地址
2.获取mac
windos+r >>>输入cmd >>> ipconfig -all
arp协议 ——查询IP地址和MAC地址的对应关系(了解)
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
传输层
PORT协议(端口协议)
用来标识一台计算机上面的某一个应用软件
范围:0-65535
特征:动态分配(火锅店排号等待)
端口号默认情况:
0-1024:是系统默认使用的端口号
1024-8000:常见软件的端口号
>8000:我们开发软件建议可以使用的端口号,
注意:如果我们使用8000之前的端口号,启动很多个软件,计算机随机分配的端口号会撞号,
URL协议:统一资源定位符(网址)
网址本质由IP和PORT组成的
IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个应用程序
域名解析:将网址解析成IP+PORT
我们之所以不直接使用IP+PORT的原因是太难记了,所以发明了域名(网址)
IP+PORT 世界使用冒号连接
114.55.205.139:80
实际上,是为了方便阅读,我们才将IP:PORT与字符网址对应起来,我们通过DNS服务就可以将域名转换为IP:PORT的格式,从而访问到网络那一端的程序。
标签:协议,ASP,IP,编程,网络,IP地址
From: https://www.cnblogs.com/zhanglanhua/p/16893711.html