文章目录

  • 1. 基本概念
    • 1.1 前言
    • 1.2 web应用程序
    • 1.3 静态web
    • 1.4 动态web
  • 2. web服务器
    • 2.1 技术介绍
    • 2.2 常见的web服务器
  • 3. Tomcat![在这里插入图片描述](https://img-blog.csdnimg.cn/41006bb1ae6745bfa71bbbf926ebf6ac.png)
    • 3.3 配置
    • 3.4 发布一个web网站
  • 4.Http
    • 4.1 什么是Http?
    • 4.2 两个时代
    • 4.3 Http请求
      • 4.3.1 请求行
      • 4.3.2 请求头
      • 4.3.4 请求体
    • 4.4 Http响应
      • 4.4.1 响应头
      • 4.4.2 响应体
      • 4.4.3 响应状态码

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 请求服务器删除指定的页面
CONNECT HTTP/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 - 内部服务器错误

JavaWeb-Day01相关推荐

  1. JavaWeb:HTML

    <html><head></head><title>这是我的第一个网页</title><meta charaset="UTF ...

  2. 黑马程序员就业班第一天的总结以及自己的看法

    就业班第一天的内容:html 个人感觉东西蛮多的,,要记下来的内容也蛮多的,总结的内容大概如下:HTML 1.html的简介     (1)什么是html?HyperText Mark-up Lang ...

  3. HTML+CSS+JavaScript速成

    文章目录 HTML/CSS/JavaScript HTML Html HyperText Markup Language内容 font标签 font-01 font-011 图象 image-01 表 ...

  4. HTML + CSS + JavaScript速成

    文章目录 HTML/CSS/JavaScript HTML Html HyperText Markup Language内容 font标签 font-01 font-011 图象 image-01 表 ...

  5. java控制分屏_java实现arcgis地图分屏(双图)

    java实现arcgis地图分屏(双图) java实现arcgis地图分屏(双图) 本博文采用Java语言,利用arcgis api for javascript 4.16地图服务,实现地图分屏,直接 ...

  6. 01__HTML语言

    HTML语言 1. html的简介 (1)什么是html?HyperText Mark-up Language ,超文本标记型语言,是网页的语言. * 超文本超文本:超出文本的范畴 * 标记:理解为标 ...

  7. JavaWeb图书管理系统day01

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  8. 崔希凡javaWeb笔记day01~day03(2016年5月20日20:33:54)

    为了提高效率,我借助有道云笔记将我的笔记转成了pdf文件,更加方便查看 链接:http://pan.baidu.com/s/1jIEVfMY 密码:7pzl 转载于:https://www.cnblo ...

  9. JavaWeb图书管理系统day03

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  10. JavaWeb图书管理系统day02

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

最新文章

  1. Android状态栏颜色修改
  2. excel排名_WPS-Excel表格实用技巧——排位排名函数(RANK函数)的使用
  3. 干货 | 产品经理要了解的技术类知识
  4. [Flexbox] Using order to rearrange flexbox children
  5. 图像分割中的深度学习:U-Net 体系结构
  6. 力扣20.有效的括号
  7. STM8单片机ADC单次采样模式
  8. log4j2 配置详解及使用范例
  9. 数据集查找神器!100个大型机器学习数据集都汇总在这了 | 资源
  10. 从“为什么不能直接打开PDF文件”说到“脚本***”
  11. windows核心编程第二章阅读
  12. jumserver 官方文档和
  13. 同步带周长计算公式_同步带选型计算方法
  14. MySQL数据库编程(C++)介绍
  15. JAVA音乐社交平台设计计算机毕业设计Mybatis+系统+数据库+调试部署
  16. 解决git:fatal:Unable to create”…/.git/index.lock” 的错误
  17. 全覆盖路径规划--Morse函数临界点的地图精确单元分解
  18. jupyter自动补齐插件安装后没有Nbextensions 不显示jupyter lab自动补全插件jupyter lsp的安装与使用
  19. 3GQQ幻想西游升级最快的方法(集)
  20. 华为mate30如何开启USB网络共享

热门文章

  1. [JVM]了断局:内存模型与线程
  2. java nio socket
  3. 249、海康8700监控服务平台如何配置手机远程访问
  4. MCK主机加固数据安全解决方案
  5. [倚天屠龙记] vim 查找与替换(简单查找)
  6. Pandas基础:文件读取与写入、Series和Dataframe、常用基本函数、排序
  7. PW6513原装现货
  8. OpenDaylight-Boron学习笔记: 4 OVSDB模块
  9. 2022-2028全球与中国语音生物识别市场现状及未来发展趋势
  10. UCOSIII移植STM32(Cotex-M4)HAL库相关问题