一、互联网通信流程
1.互联网通信
1.两台计算机通过网络实现文件共享行为
2.互联网通信角色划分
1.客户端计算机:用于发送请求,索要资源文件的计算机
2.服务端计算机:用于接收请求,并提供对应资源文件的计算机
3.互联网通信模型
3.1 B/S【主要学习】
B,Brower software,浏览器:
(1)浏览器软件是安装在客户端计算机上的一个软件
(2)可以向任意服务器发送请求,索要资源文件
(3)可以将服务器返回的二进制数据解析为文字,数字,图片,视频,命令
S,Server sofeware 服务器软件:
(1)服务器软件是一个安装在服务端计算机上的软件
(2)可以接收任意浏览器发送请求
(3)服务器软件在接收到请求之后自动定位在服务端计算机上被访问的资源文件,将文件解析为二进制数据通过网络发送回发起请求的客户端软件上
适用场景:既适用于个人娱乐市场,又广泛适用于企业日常办公
优点:
(1)不会增加客户获得服务的成本
(2)几乎不要更新浏览器
缺点:
(1)几乎无法有效对服务端计算机资源文件进行保护
(2)服务端计算机工作压力巨大(如何解决高并发也就是多线程的解决方案)
3.2 C/S
C,Client software 客户端软件:
(1)客户端软件安装在客户端计算机上
(2)帮助客户端计算机向指定服务端计算机发出请求,索要资源文件
(3)帮助客户端计算机将服务端计算机发送回来的二进制数据解析为文字,数字,图片,视频,命令
S,Server sofeware 服务器软件:
(1)服务器软件是一个安装在服务端计算机上的软件
(2)服务器软件用于接收来自于特定的客户端软件发送的请求
(3)服务器软件在接收到请求之后自动定位在服务端计算机上被访问的资源文件,将文件解析为二进制数据通过网络发送回发起请求的客户端软件上
适用场景:C/S通信模型普遍用于个人娱乐场所,如微信,京东,淘宝,B站,大型网络游戏等,企业办公领域相对应用较少
优点:
(1)安全性较高
(2)有效降低服务端计算机工作压力
缺点:
(1)增加客户获得服务的成本
(2)更新较为繁琐
4.共享资源文件
4.1 共享资源文件
1.可以通过网络传输的文件,都被成为共享资源文件
4.2 Http服务器下对于共享资源文件的分类【熟悉】
1.静态资源文件:
(1)文件内容固定,如文档,图片,视频
(2)文件内容是命令,且命令只能被浏览器编译和执行(http,css,js)
2.动态资源文件:
(1)文件内容是命令,且命令不能在浏览器中编译和执行,只能在服务端计算机编译和执行(.class)
4.3 静态资源文件和动态资源文件调用方式的区别
1.静态资源文件:Http服务器直接通过输出流将静态文件中的内容或者命令以二进制的方式发送给请求的浏览器
2.动态资源文件:Http服务器需要创建当前class文件的实例对象()
class Student
{ public int add(int num1,int num2)
{ int sum = sum1 + sum2 return sum} }
Http服务器(自动) Student stu =new Student();
int 结果 =stu.add(10,20)
system.out.print(结果)
二、HTML编程语言
1.介绍
1.HTML编程语言学称是超文本标记式编程语言,是一种专门在浏览器编译与执行的编程语言
2.作用
1.通知浏览器将接收的数据以指定方式在窗口展示(前端工程师)
2.控制浏览器请求行为(前端工程师/服务端工程师)【重点】
3.HTML编程语言规范
1.所有命令都是声明在标签中
2.所有命令都是预先定义好的,不允许开发人员创建新的命令(不可以new)
3.所有命令都是不区分英文字母大小写的
4.属性赋值可以“”,‘’,也可以省略双引号和单引号,此时属性之间必须用空格来隔离
5.命令根据书写方式分为:双目标签命令与单目标签命令
6.双目标签命令书写命令分别在开始标签与结束标签,双目标签命令在书写时,结束标签时不能省略
7.单目标签命令书写命令出现在一个标签内,单目标签命令用于表示结束“/”可以省略不写
4.常见的HTML标签命令
5.浏览器发送请求三要素
5.1 控制浏览器发送请求地址
1.超链接标签命令:
(1)格式:
<a href="请求地址">内容</a>
(2)工作原理:
超链接标签命令不会被浏览器自动执行,在用户使用鼠标单击超链接标签命令时,这个命令才会执行,执行时会要求浏览器按照href属性中地址发送请求
2.表单标签命令:
(1)格式:
<form action="请求地址" method="get/post"><!--默认为get--> <!--内容-->
<input type="submit"><!--提交按钮-->
</form>
(2)工作原理:
表单标签命令不会被浏览器自动执行,在用户单机提交按钮时,此时表单标签命令被触发执行,执行时要求浏览器立刻按照action属性地址发送请求
5.2 控制浏览器发送请求时采用请求方式
1.GET请求方式:
(1)携带的【请求参数数量】不能超过4K
(2)必须在浏览器地址栏上将【请求参数信息】展示出来
(3)必须将请求参数信息保存在Http请求协议包中【请求头】
(4)浏览器在接收到服务器返回的资源文件内容后,必须将资源,文件内容保存在浏览器的缓存中,再次发起相同请求时直接从缓存提取备份没降低请求响应时的速度和难度
2.POST 请求方式:
(1)可以携带任意的【请求参数数量】,文件上传:通过用户浏览器,将客户端计算机文件内容,发送到服务器上去,什么数据都没写的excel表格就8k了
(2)必须在浏览器地址栏上将【请求参数信息】隐藏,如账户登录
(3)必须将请求参数信息保存在Http请求协议包中【请求体】
(4)禁止浏览器将服务器返回资源文件内容进行保存,阅后即焚,比如股票价格,如果get浏览器偷懒
3.控制浏览器发送请求时采用GET/POST请求方式
(1)超链接标签命令在执行时,要求浏览器必须采用GET方式发送请求
(2)表单标签命令存在一个method属性,通过这个属性可以要求浏览器采用对应请求方式发送请求,method属性值默认是get
<form action="请求地址" method=”get/post“></form>
4.请求方式适用场景【面试】
(1)POST请求方式,用户可以将病毒文件内容发送到服务器上进行攻击,因此绝大多数门户级网站拒绝接收POST请求,日常开发过程中绝大多数请求都是GET
(2)某些场景下必须采用POST请求方式:
文件上传
发起登录验证请求
索要服务器中实时变化的数据时(如股票的价格)
5.3 控制浏览器发送请求时携带请求参数
1.请求参数的作用:
用户通过浏览器访问服务端计算机动态资源文件时
class Student
{ public int add(int n1,int n2)
{ int sum = n1+n2; return sum;} }
Http服务器: Student stu = new Student()
stu.add(?,?)
浏览器发送请求时需要携带调用方法需要实参(请求参数)http://www.baidu.con1=100&n2=200 n1=100&n2=200 就是浏览器发送的请求参数
2.格式
请求地址?请求参数名1=值1&请求参数名2=值2
3.表单域标签分类
(1)<input />
(2)<select></select>
(3)<texterea></texterea>
4.表单域标签value属性默认值:
(1)大多数表单域标签value属性默认值是空字符串 userName=‘ ’
(2)对于radio和checkbox来说,value属性默认值‘on’字符串
5.表单域标签作为请求参数条件
(1)必须声明在form标签内部
(2)必须声明name属性
(3)radio(被选中),checkbox(被选中),disabled(value不可被修改不可作为参数),readOnly(value不可被修改但可作为参数)
三、CSS编程语言
1.介绍
一种专门在浏览器编译并执行的编程语言
2.作用
用于定位浏览器HTML标签并对定位的HTML标签中【样式属性】进行统一管理
四、Http网络协议
1.网络协议包
1.在网络中传递信息都是以【二进制】形式存在
2.接收方【浏览器/服务器】在接收信息后,要做的第一件事就是将【二进制数据】进行编译为【文字,图片,视频,命令】
3.传递信息数据量往往比较巨大,导致接收方很难在一组连续二进制得到对应数据