一、WEB开发介和HTTP协议

JavaWeb开发

计算机行业的发展中,最早的计算的使用门槛相对较高。因为都是使用指令进行计算机的操作。所以,最终有家公司站出来,愿景是,让普通人也能使用电脑。降低计算机的门槛,让计算机融入们的生活。提出所有的问题都是鼠标的右键解决------微软。开发了,桌面操作系统,windows系列。计算的门槛降低了,大部分人都能使用计算机。但是,没有融入生活。因为操作系统中,与人们生活相关的软件,还存在问题,有些欠缺,软件相对较少。基于这样的情况,出现开发软件。基于桌面系统开发软件,开发桌面程序。office , 扫雷,蜘蛛纸牌,暗黑破坏者,魔兽争霸。都是电脑上的单机版软件。但是,计算机在很大程度上就融入生活。然后,计算机和计算机之间的联系相对而言还是较少。每个计算机中的程序,一般都是独立运行,没有太多的数据交互。例如:office本地办公。但是,随着计算机用户群体增大,互联网的发展,人的诉求,已经不再限于,在一个小型的环境里面进行交流。QQ等等这样基于网络,以及客户端的程序逐渐出现。这种软件的架构模式,将各个地域的电脑中的信息,进行集中处理。这种就是CS架构模式。每个电脑上,安装客户端,客户端收集用户的操作,发送给服务器,服务器统一进行处理。这就是CS架构: C client S server,客户端服务器模式.

然而,随着计算机和互联网的发展,人们对计算机和网络的需求和依赖,逐渐加深。计算机和网络,融入到人们的生活。CS架构的弊端逐渐的体现体现出来。

不足:

  1. 客户端需要进行安装才能使用。在生活中不是很方便。例如:office,wps.因为wps小,很多时候,可以临时使用。

  2. 因为客户端需要进行安装,相对而言存在一定的门槛。例如: XX软件.手把手的教我设置XX软件,远程帮忙设置XX软件。

  3. 客户端程序和服务器程序一般都是成对。版本是对应的。且客户端程序是安装在用户本地。不便于维护。

    例如: 如果客户端程序出现了BUG。需要进行升级。如果用户不升级。则可能存在安全漏洞问题。

​ 基于以上不足,也随着互联网的发展。此时,掀起了另外一个架构模式:BS架构。

​ B : browser 浏览器

​ S : Server 服务器

​ 浏览器服务器架构。

​ 在浏览器服务器架构中,浏览器充当,客户端。而服务器是在硬件服务器中安装应用服务器。

服务器一般分为2类:

硬件服务器 : CPU 内存 带宽 磁盘 等等 就是一台物理主机及网络。

应用服务器 : 是指为应用程序提供服务的软件。tomcat jboss weblogic 等等。

优点:

  1. 一般操作系统都自带浏览器,及无需再安装客户端。

  2. 程序的升级操作,已经与客户端无关。提高了程序的可控性。只需要服务器更新,客户端无需作出改变。控制性能加好。

  3. 随着,移动互联网的发展。由于,手机的兼容性的问题。常规的移动应用程序,成本相对较高。IOS版本 安卓版本 TV版 手表 平板 等等各种版本。成本相对较大,且维护成本难度也相对较大。所以,基于浏览器的移动终端,也兴起。也属于web.属于BS架构,所以BS架构逐渐的兴起。

CS架构与BS架构的对比

  1. CS架构,虽然安装相对麻烦,但是客户端是定制化的,所以数据传输和用户的操作,更加安全和流畅。

  2. BS架构,依赖于浏览器,而浏览器只是各个浏览器厂商,用于浏览信息的程序,具有一定行业内的规范。

    且依赖于HTTP协议。而HTTP协议是一个开源的,应用层协议。相对而言,数据不够安全,且相对传输效率较低。因为这个HTTP协议,是一个通用的协议。不论被传输的是啥,一些有关或者无关的信息都需要进行传输。

而Javaweb就是BS架构。

1.什么是BS架构?

B Browser 浏览器

S Server 服务器

BS架构,即是利用浏览器,依赖HTTP协议,与服务器进行数据交互的一种软件设计架构。BS架构本身也是一种分布式架构。


BS01.png

2.使用Tomcat发布一个项目

2.1.tomcat的目录结构

tomcat目录介绍.png

bin: tomcat中命令脚本 startup 启动 shutdown 停止

conf:

​ context.xml : 设置tomcat中默认监视的web应用程序的文件: WEB-INF/web.xml。在web程序中,web.xml是程序的入口

​ server.xml : tomcat的服务器配置文件

​ tomcat-users.xml : 配置tomcat的用户信息 登录认证

​ web.xml:tomcat自身也是一个web程序,Javaweb程序。web.xml也是tomcat这个web程序的配置信息

​ default的servlet,配置tomcat服务器支持的多媒体文件类型。

lib :tomcat相关的jar包 例如: jsp-api.jar servlet-api.jar el-api.jar jasper.jar 等等

logs: 日志文件

temp : 临时文件

webapps: web应用程序发布的目录 将需要发布的项目 拷贝到webapps目录即可。

work : tomcat实际运行时产生缓存文件

2.2.tomcat发布静态项目

将静态项目的相关文件,拷贝到tomcat的webapps目下,即可。

根据http://127.0.0.1:8080/biaobai/index.html url地址访问到项目。

静态项目的访问.png

2.3.静态网站和非静态网站

什么是静态网站:网站的数据是静态,不会与服务器产生数据运算交互。

非静态网站:网站的数据是取决于服务器,是可以进行动态更新。

3.使用eclipse创建web项目

3.1.方式一:默认的web项目

eclipse创建web项目01.png
eclipse创建web项目02.png
eclipse创建web项目03.png
eclipse创建web项目04.png
eclipse创建web项目05.png

注意:

由于实际运行程序,其实是编译好的文件,在tomcat中运行,所以web项目中,若需要使用第三方的相关jar包,jar文件,要拷贝到WEB-INF/lib这个文件夹中


eclipse创建web项目06.png

3.2.方式二:一般标准的WEB项目目录结构

eclipse创建web项目07.png
eclipse创建web项目08.png
eclipse创建web项目09.png

4.HTTP协议

4.1.什么是协议?

协议,是为了对即将进行的行为,进行约束的规范。

4.2.为什么会产生HTTP协议

随着计算机,互联网的发展,利用网络传输数据,比重逐渐加大。出现了,传输成本高。网络传输,需要遵循TCP协议,最本质最终都是使用字节进行的传输,将数据做成数据包进行。历经网络传输的7层架构。数据打包到最后解包等操作,还要进行TCP3次握手。这样就提高了传输成本。且,所有的数据都最终转化为字节,需要解析。如果数据顺序不同,产生的字节也不相同,解析的方式也作出一定的改变。基于这些原因,在网络传输中,迫切的需要一个大家都遵循的规范,降低网络传输的成本。所以,HTTP协议,是一个应用层协议,它是对TCP传输协议的封装。制定了一套数据传输的规范。

4.3.HTTP协议有哪些?

HTTP 1.0 相对较早的版本,已经不再使用

HTTP 1.1 目前主流的HTTP协议的版本

HTTPS 目前推荐使用的HTTP协议版本,这个版本的协议,要求传输的双方,进行权限认证。

注意: 小程序开发,小程序只支持HTTPS协议。需要HTTPS证书。 tomcat也支持HTTPS协议,只是需要配置证书

4.4.HTTP协议的特征

  1. HTTP 协议是基于请求/响应模型的协议,请求和响应必须成对,先有请求后有响应。应答式的协议。
HTTP协议特征01.png
  1. HTTP 协议默认的端口是 80。例如:http://www.bjsxt.com:80 HTTPS 默认端口: 443

  2. 简单快速:当客户端向服务器端发送请求时,只是简单的填写请求路径和请求方法即可,然后就可以通过浏览器或其他方式将该请求发送就行了。比较常用的请求方法有两种,分别是:GET、POST。不同的请求方法使得客户端和服务器端联系的方式各不相同。因为HTTP 协议比较简单,所以 HTTP 服务器的程序规模相对比较小,从而使得通信的速度非常快。

  3. 灵活:Http 协议允许客户端和服务器端传输任意类型的数据对象。这些不同的类型由ContentType 标记。

  4. 无状态:HTTP 协议是无状态协议。无状态是指协议对于事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,服务器不知道客户端是什么状态。web技术:session cookie的技术解决而这个无状态的问题。就是服务器不会记录客户端信息。HTTP 1.1

  5. 明文传输,不安全。 没有做任何加密之类的处理。

4.5.HTTP协议的使用

HTTP协议主要分为两块:请求和响应。而请求是由:请求行 , 请求头,请求参数,请求体组成。响应,则由响应头和响应体(响应的内容)组成。

4.5.1.HTTP请求的构成

Http 协议由 Http 请求和 Http 响应组成。
客户端连上服务器后,向服务器发送某个 web 资源的请求,称之为客户端向服务器发送了一个 HTTP
请求。一个完整的 HTTP 请求包括:请求行、请求头、请求体(请求正文)

  1. 请求行:位于请求消息的第一行,格式:请求方式 资源路径 HTTP 版本号

  2. 请求头:客户端发送给服务器的一些基本信息,使用键值对 key:value 表示。从第二行开始到
    Request Headers 结束

  3. 请求体:当请求方式是 post 时,请求体中有请求的参数,每一项数据都用 key=value 表示,例
    如:username=zhangsan&userpwd=123456.
    如果请求方式为 get,那么请求参数不会出现在请求体中,会拼接在 url 地址后面
    http://localhost:8080...?username=zhangsan&userpwd=123

HTTP请求.png

4.5.2.HTTP请求参数说明

参数 描述
Referer 浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这 个头。源头。可以用于推广。
Cookie 与会话有关技术,用于存放浏览器缓存的 cookie 信息。
User-Agent 浏览器通知服务器,客户端浏览器与操作系统相关信息。区分:手机 平板 PC
Connection 保持连接状态。Keep-Alive连接中,close 已关闭
Host 请求的服务器主机名
Content-Length 请求体的长度
Content-Type 如果是 POST 请求,会有这个头,默认值为 application/x-www formurlencoded. 表示请求体内容使用 url 编码
Accept 浏览器可支持的 MIME 类型,它是文件类型的一种描述格式。 MIME 格式:大类型/小类型[;参数],例如: text/html ,html 文件 text/css,css 文件 text/javascript,js 文件
Accept- Encoding 浏览器通知服务器,它支持的数据压缩格式。如:GZIP 压缩
Accept-Language 浏览器通知服务器它的语言环境

4.5.3HTTP响应参数说明

HTTP响应信息,是指服务器,向HTTP请求作出的回应.回应的内容就是响应信息.
HTTP 响应构成
一个完整的 HTTP 响应包括:响应行、响应头、响应体

  1. 响应行:位于响应消息的第一行,格式:HTTP 版本号 状态码 状态描述信息
    例如:HTTP/1.1 200 OK

  2. 响应头:服务器返回给客户端的信息,使用键值对 key:value 表示。从第二行开始到 Response
    Headers 结束.响应头服务器可以自定义。

  3. 响应体:响应体是服务器回写给浏览器的页面正文,浏览器将正文加载到内存,根据Content-Type解析渲染,显示页面内容

常用状态码:

200(正常)表示一切正常,返回的是正常请求结果

302/307(临时重定向)指出被请求的文档已被临时移动到别处,此文档的新的URL 在
Location 相应头中给出(在Location 给出响应需要跳转的地址).

304(未修改)表示请求的资源没有改变,客户机可以直接访问本地缓存的资源,无需到服
务器请求。

404(找不到)服务器上不存在客户机所请求的资源。

500(服务器内部错误)服务器端的程序发生错误。

HTTP响应.png

HTTP 响应头参数说明

常见响应头 描述
Location 服务器通过这个头,来告诉浏览器跳转到哪里。重定向的地址
Content-Type 响应正文的类型(MIME 类型) 取值如:text/html;charset=UTF-8
Content-Disposition 通知浏览器以下载方式解析正文 取值如:attachment;filename=xx.zip
Set-Cookie 与会话相关技术。服务器向浏览器写入 cookie。将Cookie写入到客户端中
Content-Encoding 服务器通过这个头,告诉浏览器,数据的压缩格式 取值如:gzip
Content-length 响应正文的长度
Refresh 定时刷新,格式:秒数;url=路径 取值如:3;url=www.bjsxt.com //3 秒刷新页面到 www.bjsxt.com

你可能感兴趣的:(一、WEB开发介和HTTP协议)