文章目录
- Web通信
- 资源文件分类
- Web通信过程中的交流方式
- C/S 架构
- B/S 架构
- Web通信过程中的商业问题
- 网络协议数据包
- HTTP网络协议包内部结构
- 如何通知浏览器在发送请求时携带【请求参数】
- HTTP服务器资源管理软件:【HTTP服务器】
- HTTP服务器分类:
- DNS域名解析
在学习Java Web相关技术时,最好能够对一些以下知识点有所了解,例如:
C/S结构 vs B/S 结构
HTTP HTML
CSS
JavaScript
…
以下简单介绍Java web的相关知识点:
Web通信
两个计算机通过网络进行【资源文件】共享的行为
资源文件分类
- 静态资源文件
比如:图片,html,电影,音乐
如果远程用户申请的是静态资源文件,此时服务端计算机将静态资源文件直接返回给客户端计算机 - 动态资源文件
一段应用程序,比如一个java文件。
如果远程用户申请动态资源文件,此时在服务器端计算机上运行当前程序,然后将运行结果推送到客户端计算机上。(例子:不同的输入,返回不同的结果)
Web通信过程中的交流方式
C/S 架构
C: Client 客户端软件
S: 服务端软件(服务端计算机资源调用软件)
要求计算机必须安装指定客户端软件才可以与服务端进行通信(例如:QQ,微信,播放器)
优点:
- 减轻服务端工作压力
- 具有较高的安全性:
缺点:
- 增加用户使用成本:比如一般的计算机不一定带的动;
- 增加用户使用难度
- 商业推广的成本较大
- 维护成本较大
B/S 架构
B: Browser 浏览器
S: 服务端计算机(服务端计算机资源调用软件)
客户端计算通过浏览器向服务器端计算机发送请求
缺点:
- 无法降低服务端的压力。
- 缺乏安全保护措施:一般认为web网站经不起攻击
优点:便宜
- 客户使用成本低廉:配置要求低
- 客户使用难度也非常低
- 推广的费用非常低
Web通信过程中的商业问题
无法预测用户发送请求时间
网络协议数据包
在Web通信过程中,所有在网络中传递的数据都是包裹在网络协议包。在网络协议包中存在若干个固定空间,在每一个空间中存放的都是特定的数据。方便服务端和客户端在接收到数据之后的编译。
B/S架构中,使用HTTP网络协议包【无状态协议包】
HTTP网络协议包内部结构
- 请求行为:客户端发送的请求数据 --> 【请求协议包】
内部空间:
1.【请求行】:1) 本次请求网站地址 2) 请求方式 get/post 3) 协议版本
2.【请求头】:可以通过浏览器查看。总体来说,存放的是我们期望服务器端返回的资源类型(期望返回的文件类型、期望放回的文件中字符集、当前发送请求的浏览器类型、cookie,***如果浏览器本次发送的是【get】,此时请求参数也是放在请求头***)
3.【空白行】:分隔 作用
4.【请求体】:如果浏览器采用的是post方式,请求参数只能存在请求体中;如果是get方式,则请求体没有内容,在请求头中;
- 响应行为:服务端将数据推送到客户端浏览器 --> 【响应协议包】
内部空间:
1.【状态行】:服务端产生的【http状态码】,用来描述服务端对于本次通信的状态
2.【响应头】:服务端推送的文件类型以及文件使用的字符集、服务端推送的Cookie
3.【空白行】:分隔
4.【响应体】:要么是服务端推送的静态资源图片、要么是服务端的应用程序的运行结果
如何通知浏览器在发送请求时携带【请求参数】
- 通过超链接要求浏览器发送请求时携带请求参数 -> 【get】方法
使用标签<a href=""> - 通过浏览器的地址栏要求浏览器发送请求时携带请求参数 -.>【get】方法
js脚本,window.location = “” - form表单通知浏览器发送请求时携带请求参数 -> 【get/post】方法
submit按钮被单击时,负责【唤醒浏览器】,浏览器通过【form标签action属性】了解本次请求服务端地址,浏览器通过【form标签method属性】了解本次请求的方式,将当前form标签内部所有声明“name”属性的“表单域标签”作为请求参数(name:请求参数名 value:请求参数内容)
HTTP服务器资源管理软件:【HTTP服务器】
具有以下特点:
- 24小时不间断工作
- 接受并解析来自客户端发送【请求http协议包】,了解用户请求的资源文件
- 自动定位服务端中与本次请求关联的【资源文件】
- 可以将被访问的资源文件写入到【响应http协议包】,并把这个协议包推送到客户端的浏览器上
B/S结构中,服务端可以实现【无人值守】。
HTTP服务器分类:
- 目前国内开发时,使用主流Http服务器Apache Tomcat,(一次最多接受2000个访问请求)
- IBM提供Weblogic,(收费,抗压性更强些,一次请求可以上万次)
- JBoss
- RESIN
HTTP的默认端口是80端口,因此,对于采用80端口的Web服务器,无需输入端口号。
如果Web服务器未运行在80端口上,此时必须输入相应的端口。
例如,Tomcat服务的默认端口号是8080,访问时必须带上端口。
DNS域名解析
互联网上都是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接,如果将域名解析成IP地址就属于DNS解析的工作范畴。
具体的解析步骤很多。
操作系统中,也会有一个域名解析的过程:
- 在Windows系统中,可以通过:
C:\Windows\System32\drivers\etc\hosts
文件来设置,你可以将任何域名解析到任何能够访问的IP地址。
如果你在这里指定了一个域名对应的IP地址,那么浏览器就会首先使用这个IP地址。
可以使用nslookup
命令来查询域名的解析过程。 - 在Linux系统中,配置文件是:
/etc/hosts
可以使用dig
命令来查询域名的解析过程。