JavaWeb-Day01

1. 基本概念

1.1 前言

web开发:

  • web 网页的意思
  • 静态web
    • html,css
    • 提供给人看的数据不会发生变化
  • 动态web
    • 几乎所有网站,例如淘宝,京东等等
    • 提供给人看的数据会发生变化,每个人在不同的时刻看到的消息尽不相同!
    • 技术栈:Servlet/JSP,ASP,PHP
      那么,在java中,动态web资源的开发技术就统称为javaWeb

1.2 web应用程序

web应用程序:可以提供给浏览器访问的程序

  • 多个html文件,即这些多个web资源可以被外界访问,对外界提供服务
  • 任何一个页面或者资源,都存在与某一个角落的计算机上(服务器)
  • URL:统一资源定位符
  • 这个统一的web资源会放在统一个文件夹下,web应用程序——> Tomcat:服务器
  • 一个web应用由多部分组成(静态web,动态web)
    • HTML,css,js
    • jsp,servlet
    • java程序
    • jar包
    • 配置文件(Properties)

web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理!

1.3 静态web

  • 静态web存在的缺点
    • 页面无法动态更新,所有用户看到的都是同一个页面
      • 轮播图,点击特效:伪动态
      • JavaScript(在实际开发中用的最多)
      • VBScript (少)
    • 它无法和数据库交互(即:数据就无法持久化,用户无法交互)

1.4 动态web

页面会动态展示,展示的效果因人而异!

示意图(与数据库交互):
在这里插入图片描述
缺点:

  • 加入服务器的动态web资源出现了错误后,我们需要重新编写我们的后台程序,重新发布
    • 停机维护

优点:

  • web页面可以动态更新,所有用户看到的都不是同一个页面
  • 它可以与数据库交互

2. web服务器

2.1 技术介绍

ASP

  • 微软:国内早期流行的就是ASP
  • 在HTML中嵌入了VB的脚本,ASP+COM;
  • 在开发和维护中不容易,维护成本高!
  • c#
  • IIS

PHP:

  • 开发速度很快,功能很强大,代码很简单
  • 无法承载大访问量的情况(局限性)

JSP/servlet:

B/S: 浏览器和服务器

**C/S:**客户端和服务器

  • Sun公司主推的B/S架构
  • 基于java语言的
  • 可以承载:高并发、高可用、高性能 (三高)带来的影响
  • 语法像ASP,写ASP的人容易适应

2.2 常见的web服务器

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应的信息

IIs

微软的,ASP,windows中自带的

Tomcat介绍:

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.14
(工作3-5年可以尝试手写一个Tomcat服务器)

下载Tomcat:

  • 安装
  • 了解配置文件及其目录结构
  • 这个东西的作用是什么

3. Tomcat在这里插入图片描述

官网:https://tomcat.apache.org/
在这里插入图片描述
3.2 Tomcat的启动和配置
在这里插入图片描述
启动,关闭Tomcat
在这里插入图片描述
访问测试:http://localhost:8080/

默认是8080端口,默认主机localhost ->127.0.0.1

当然,如果想要修改,可以找到这个地方:
在这里插入图片描述
在这里插入图片描述
修改默认的启动端口号:

  <Connector port="8080(例如:改为8081)" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

可以配置主机的名称

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

在这里插入图片描述

  • 默认的主机名为:localhost->127.0.0.1
  • 默认望着你应用存放的位置为:webapps

面试题:
网站是如何进行访问的?

  • 输入一个域名;敲击回车
  • 检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射
    • 有:直接返回对应的ip地址,这个地址中有我们需要访问的web程序,直接访问
    • 没有:去DNS服务器找,找到的话就返回,找不到就返回找不到!

示意图:
在这里插入图片描述

3.3 配置

可以配置一下环境变量!(可选):说白了,环境变量就是让系统知道你的软件路径在哪,以后你就可以通过命令行直接启动软件了

3.4 发布一个web网站

  • 打开tomcat解压文件夹下的webapps目录
  • 进入ROOT目录,删除其他的文件,保留WEB-INF文件夹,复制下来,返回上一级目录
  • 将个人的项目文件夹粘贴到该目录
  • 将WEB-INF文件夹粘贴到个人项目文件夹下

访问:http://localhost:8080/H5FinalExam/

这里我放了一个期末作业的项目,访问后的效果:
在这里插入图片描述
网站发布流程:

  • 将自己写的网站的项目,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了

详细流程:

1.首先有一台公网ip的服务器(Linux系统)->

2.注册一个域名->

3.在该服务器部署Tomcat服务->

4.将个人的web项目放到Tomcat中指定的web应用的文件夹(webapps)下

5.访问:(默认端口是8080,在linux下也可以改的) http://localhost:8080/H5FinalExam/

网站应该有的结构:

--webapps:Tomcat服务器的web目录
  -ROOT
  -H5FinalExam:网站的目录名(即:web项目的名字)
  	- WEB-INF文件夹
  		- classes :java程序
  		- lib: web应用所依赖的jar包
  		- web.xml :网站的配置文件
  		
  	-index.html: 默认的首页
  	-static
  		-css
  			-style.css
  		
  		-js
  		-img

4.Http

4.1 什么是Http?

HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上

  • 文本
  • 超文本:所谓“超文本”,就是“超越了普通文本的文本”。在HTTP诞生之初,受时代的限制(当时网络上绝大多数的资源都是纯文本),结构简单,传输的都是简单的字符文字,即纯文本。“超文本”是文字、图片、音频和视频等的总称。
  • 默认80端口

Https:安全的

  • 端口443
  • HTTP的三点注意事项:

注意:

1 无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

2 媒体独立:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型

3 无状态HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大

工作原理:

HTTP工作原理:
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求,Web服务器根据接收到的请求后,向客户端发送响应信息HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

4.2 两个时代

  • http 1.0

    • HTTP/1.0 客户端可以与web服务器连接后,只能获得一个web资源,断开连接
  • http 2.0

    • HTTP/1.1

4.3 Http请求

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
在这里插入图片描述

4.3.1 请求行
  • 请求行中的请求方式
    • GET:请求携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但是高效
    • POST :请求携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但是不高效
    • HEAD (了解)
  • HTTP1.1 新增了六种请求方法(了解):OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

具体方法展示:

方法描述
GET请求指定的页面信息,并返回实体主体。
HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改
PUT从客户端向服务器传送的数据取代指定的文档的内容
DELETE请求服务器删除指定的页面
CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,主要用于测试或诊断
PATCH是对 PUT 方法的补充,用来对已知资源进行局部更新
4.3.2 请求头
Bdpagetype: 3
Bdqid: 0x8e67cbc90008b598
Cache-Control: private
Ckpacknum: 2
Ckrndstr: 90008b598
Connection: keep-alive
Content-Encoding: br
Content-Type: text/html;charset=utf-8
Date: Thu, 18 Aug 2022 10:22:14 GMT
Server: BWS/1.1
Set-Cookie: delPer=1; path=/; domain=.baidu.com
Set-Cookie: BD_CK_SAM=1;path=/
Set-Cookie: PSINO=7; domain=.baidu.com; path=/
Set-Cookie: BDSVRTM=28; path=/
Set-Cookie: H_PS_PSSID=26350; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Traceid: 1660818134066391066610261394340136400280
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Frame-Options: sameorigin
X-Ua-Compatible: IE=Edge,chrome=1
4.3.4 请求体

4.4 Http响应

4.4.1 响应头

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ecdJO7U-1665038196255)(…/…/TYpOra/javaweb/image-20220818183539742.png)]

4.4.2 响应体
4.4.3 响应状态码
  • 2xx - 请求成功
  • 3xx - 资源(网页等)被永久转移到其它URL (重定向)
  • 4xx - 请求的资源(网页等)不存在 404
  • 5xx - 内部服务器错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值