目录
什么是web开发
- web通信,指的是两台计算机通过网络进行资源文件共享活动
- web开发确保本次通信顺利执行
Web通信过程中两台计算机之间角色
- 客户端计算机:用于发送请求
- 服务端计算机:提供共享资源文件
资源文件:
理论上讲,计算机上所有的文件都是资源共享文件
分类:
静态资源文件:
定义:文件内容是固定的,不能随着请求变化而发生变化
例子:图片,html,doc,xls
特点:服务端计算机直接将【静态资源文件】推送给【客户端计算机】,所有被共享的【静态资源文件】最终是在客户端计算机运行
动态资源文件:
定义:文件内容可以根据用户提供的需求变化而产生不同变化的内容
例子:java文件
特点:服务端计算机会调用执行【动态资源文件】,服务端计算机将【动态资源文件的运行结果】交给客户端计算机
Web通信过程中,两台计算机如何进行通信
C/S结构通信方式:
介绍:
C:client,客户端计算机安装特定【客户端程序】可以帮助客户端计算机向指定服务端发送请求
S:server,在服务端计算机安装一种特定【资源调度软件】接收特定客户端程序发送请求,将请求需要资源文件推送回客户端计算机上【客户端程序】
例子: QQ,各种大型游戏
优点:
- 可以有效的保护服务端计算机
- 可以分摊服务端计算机工作压力(很多处理可以放到客户端)
缺点:
- 增加客户获得服务的成本(还需要花费很多流量进行下载,还需要等待安装)
- 增加服务端维护成本(服务器变化,各个客户端都得变化)
B/S结构通信方式
介绍:
B:browser,可以帮助客户端计算机向任意服务端发送请求
S:server,在服务端计算机安装一种特定【资源调度软件】可以接收所有浏览器发送请求。将请求的资源文件推送客户端计算机浏览器上
优点:
不会增加客户获得服务的成本
不会再增加服务端维护的成本
缺点:
无法有效保护服务端计算机
无法通过客户端计算机分摊服务端计算机压力
网络协议包
定义:用于包裹在网络中传输【二进制数据】,网络协议包存在【固定空间】用于存放【特定数据】便于接收方分析得到数据
分类:FTP,http
B/S通信方式:目前为止B/S通信结构中,只使用Http网络协议包
Http网络协议包内部结构
http请求协议包:
1.是浏览器发送请求时,负责创建的
2.是浏览器负责将请求信息,写入到请求协议包
3.Http请求协议包内部自上而下有四层结构:
请求行:
url:请求资源文件地址
method:浏览器采用的请求方式
请求头:
浏览器希望获得资源文件类型【html/png】
浏览器希望获得资源文件内容依赖字符集(用什么方式解码)
如果浏览器采用【GET方式发送请求】,本次关联请求参数需要保存在请求头
空白行:隔离层
请求体:如果浏览器采用【POST方式发送请求】,本次关联请求参数需要保存在请求体
Http响应协议包:
1.在服务端计算机的【资源调度软件】准备推送文件时,负责创建的
2.【相应协议包内容】可以由【资源调度软件】写入,可以由Java命令(response)写入
3.Http请求协议包内部自上而下由四层结构:
状态行:状态码
相应头:
返回文件类型(doc,text,html,text/html)
返回文件内容依赖字符集,浏览器需要使用这个字符集
对接收内容进行解码
空白行:隔离层
相应体:
静态资源文件也可能是动态资源文件,运行结果(二进制形式)
客户端计算机上浏览器管理
一、如何命令浏览器向指定网站发送请求:
- 通过From表单命令<form action="https://www.csdn.net/">
- 通过超链接命令<a href="https://www.csdn.net/">CSDN</a>
- 浏览器的地址栏对象 window.location="https://www.csdn.net/";
二、请求方式【POST/GET】
GET方式:
要求浏览器发送请求时,携带请求参数数量不能超过4k
要求浏览器将请求参数写入到【请求头】
要求浏览器将请求参数信息在地址栏上显示出来
要求浏览器对接收的资源文件必须缓存到内存【静态资源文件】
POST方式:
不会限制浏览器发送请求时,携带请求参数数量
要求浏览器将请求参数写入到【相应体】
要求浏览器将请求参数信息在地址栏隐藏
要求浏览器对接收的文件不能保存到缓存【阅后及焚】【动态变化内容 车票信息,股票价格】
三、如何控制浏览器采用的请求方式
1.让浏览器发送请求时,采用【GET方式】
- 超链接标签命令,一定回要求浏览器采用【GET】
- location对象,一定会要求浏览器采用【GET】
- FORM标签命令中method属性可以控制浏览器采用GET方式发送请求
2.让浏览器发送请求时,采用【POST】
- 设置FORM标签中method属性等于“POST”
四、如何命令浏览器在发送请求时,携带指定请求参数
- 超链接标签命令,可以命令浏览器携带请求参数:<a href="https://www.csdn.net?uname=make&age=12">CSDN</a>
- loction对象,可以命令浏览器携带请求参数:window.location="https://www.csdn.net?uname=make&age=12"
- 以上两种方式存在弊端,请求参数内容是固定,无法根据客户具体要求来改变
- 表单域标签可以接收用户输入的内容,作为请求参数内容
- 【表单域标签分类】:INPUT、select、textarea
- 【表单域标签作为请求参数条件】
- 第一个条件:表单域标签必须声明在当前FORM标签内部
- 第二个条件:表单域签名必须声明【name属性】,这个属性作为【请求参数名】
- 第三个条件:针对checkbox和radio,只有被选中情况下,才可以作为请求参数