文章目录

  • 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通信

两个计算机通过网络进行【资源文件】共享的行为

资源文件分类

  1. 静态资源文件
    比如:图片,html,电影,音乐
    如果远程用户申请的是静态资源文件,此时服务端计算机将静态资源文件直接返回给客户端计算机
  2. 动态资源文件
    一段应用程序,比如一个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.【响应体】:要么是服务端推送的静态资源图片、要么是服务端的应用程序的运行结果

如何通知浏览器在发送请求时携带【请求参数】

  1. 通过超链接要求浏览器发送请求时携带请求参数 -> 【get】方法
    使用标签<a href="">
  2. 通过浏览器的地址栏要求浏览器发送请求时携带请求参数 -.>【get】方法
    js脚本,window.location = “”
  3. form表单通知浏览器发送请求时携带请求参数 -> 【get/post】方法
    submit按钮被单击时,负责【唤醒浏览器】,浏览器通过【form标签action属性】了解本次请求服务端地址,浏览器通过【form标签method属性】了解本次请求的方式,将当前form标签内部所有声明“name”属性的“表单域标签”作为请求参数(name:请求参数名 value:请求参数内容

HTTP服务器资源管理软件:【HTTP服务器】

具有以下特点:

  1. 24小时不间断工作
  2. 接受并解析来自客户端发送【请求http协议包】,了解用户请求的资源文件
  3. 自动定位服务端中与本次请求关联的【资源文件】
  4. 可以将被访问的资源文件写入到【响应http协议包】,并把这个协议包推送到客户端的浏览器上

B/S结构中,服务端可以实现【无人值守】。

HTTP服务器分类:

  1. 目前国内开发时,使用主流Http服务器Apache Tomcat,(一次最多接受2000个访问请求)
  2. IBM提供Weblogic,(收费,抗压性更强些,一次请求可以上万次)
  3. JBoss
  4. 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命令来查询域名的解析过程。