WebDay07 Tomact&Http

一 Web知识概述

JavaWeb:将编写好的java代码,发布到互联网,可以让所有用户访问到…

1.1 软件架构

  • 网络中有很多的计算机,它们直接的信息交流,我们称之为:交互
  • 在互联网交互的过程的有两个非常典型的交互方式——B/S 交互模型(架构)和 C/S 交互模型(架构)

C/S架构

Client/Server 客户端/服务器

访问服务器资源必须安装客户端软件

例如: QQ,绝地求生,LOL

在这里插入图片描述
B/S架构

Browser/Server 浏览器/服务器

访问服务器资源不需要专门安装客户端软件,而是直接通过浏览器访问服务器资源.

例如: 天猫、京东、知乎网站在这里插入图片描述

1.2 Web服务器作用

  • 开发者通过web服务器可以把本地资源发布到互联网(提供数据服务和支持)

  • 用户就可以通过浏览器访问这些资源(消费服务的)

1.3 资源的分类

资源:计算机中数据文件

静态资源

  • 对于同一个页面,不同用户看到的内容是一样的(该资源不会变化)。
    • 例如:体育新闻、网站门户等,常见后缀:*.html、*.js、*.css

动态资源

  • 用对于同一个页面,不同用户看到的内容可能不一样(该资源会变化)。
    • 例如:购物车、我的订单等,常见后缀:*.jsp、*.aspx、*.php

在这里插入图片描述

1.4 常见的Web服务器

在这里插入图片描述

  • Tomcat: Apache组织开源免费的web服务器,支持JavaEE规范(Servlet/Jsp).

  • Jetty:Apache组织开源免费的小型web服务器,支持JavaEE规范.

  • JBoss: RedHat红帽公司的开源免费的web服务器,支持JavaEE规范.

  • Glass Fish:Sun公司开源免费的web服务器,支持JavaEE规范.


  • WebLogic: Oracle公司收费的web服务器,支持JavaEE规范.
  • WebSphere:IBM公司收费的web服务器,支持JavaEE规范.

JavaEE规范

​ 在Java中所有的服务器厂商都要实现一组Oracle公司规定的接口,这些接口是称为JavaEE规范。不同厂商的JavaWeb服务器都实现了这些接口,在JavaEE中一共有13种规范。实现的规范越多,功能越强。

​ (笔记本电脑: 制定usb接口规范, usb设备 键盘 鼠标都要遵循usb接口规范)

二 Tomcat服务器【重点】

2.1 Tomcat使用

2.1.1 下载

Tomcat 官网下载地址:https://tomcat.apache.org/download-80.cgi在这里插入图片描述
在这里插入图片描述

2.1.2 安装(强烈建议)

绿色免安装版,解压即用(注意:不要有中文路径)在这里插入图片描述
在这里插入图片描述

2.1.3 目录结构

在这里插入图片描述

2.1.4 启动和关闭

在这里插入图片描述

  1. tomcat启动之后, 窗口不要关掉(相当于关闭软件): 点击startup.bat
  2. 直接右上角点击X : 强制关闭(断电) , 不推荐用(在测试时无所谓)
  3. 正常关闭: 点击shutdown.bat

在tomcat黑窗口内部ctrl+c 二次,表示正常关闭

2.1.5 启动报错问题【经验值】

① Java环境变量

现象: 黑窗口一闪而过(不到半秒)

原因: tomcat的大部分代码也是java写的

解决:

  1. JDK : Java development kit ( java开发工具包)

    a. java开发所运行的工具包(jdk所学到的类)

    b. jre : java runtime environment(java 运行环境)

​ jvm : java virtual machine(java 虚拟机)

  1. 配置好Java环境变量

​ 目的: 是为了可以在任意位置,打开cmd都能访问

​ C:\Program Files\Java\jdk1.8.0_111\bin 下的可执行程序(java.exe…)

​ a. JAVA_HOME : C:\Program Files\Java\jdk1.8.0_111
​ b. Path : %JAVA_HOME%\bin

3. JDK换成8版本,目前tomcat8和jdk8兼容没问题

在这里插入图片描述

② 8080端口被占用

现象:启动时报错(黑框口等了一会就关闭)

原因: 一个进程占用一个端口port, 一个端口不能被多个进程同时占用

​ (软件启动至少一个进程)
在这里插入图片描述
在这里插入图片描述

暴力:找到占用的端口号的对应进程,杀死进程

cmd命令:netstat -ano | findstr "8080"
在这里插入图片描述
进入到任务管理器,找到它,干掉它在这里插入图片描述
温柔:修改Tomcat端口号

进入Tomcat安装目录/conf/server.xml 文件修改 (重启tomcat生效)
在这里插入图片描述
③ 访问测试
在这里插入图片描述

http://localhost:80
http协议默认端口80(会被隐藏)
https协议默认端口443

在整个web阶段我们使用的就是tomcat默认端口:8080==

2.1.6 发布项目三种方式

① webapps 部署(最简单)

直接放置在 webapps 目录下
在这里插入图片描述
在这里插入图片描述
这种方案(支持热更新),一般在开发完毕后,来使用的
在这里插入图片描述
② server.xml部署(了解)

在tomcat/conf/server.xml中找到标签内,添加标签
在这里插入图片描述

   <!-- 
					path: 虚拟路径
					docBase : 真实路径
					mypro 映射 C:\Users\spy\Desktop\mypro
					注意: 修改配置文件,重启tomcat生效
			   -->
		<Context path="mypro" docBase="C:\Users\spy\Desktop\mypro"/>
      </Host>

缺点

1.配置文件修改完毕后,需要重启tomcat生效…

2.server.xml是tomcat的核心配置文件,如果稍有不慎操作失误,整个tomcat启动失败

3.这种方案作为了解即可

③ 独立xml部署(开发时使用)
在tomcat/conf/Catalina/localhost 目录下创建一个xml文件,添加标签在这里插入图片描述
文件名就是虚拟路径**y

不需要重启tomcat

2.2 Web项目结构

  1. 前端项目
    |-- myapp(项目名称)
    |-- css 目录
    |-- js 目录
    |-- html目录
    |-- img 目录
    |-- index.html

  2. web项目
    |-- myapp(项目名称)
    |-- 静态资源(html、css、js、img)
    |-- WEB-INF 目录(浏览器无法直接访问内部的资源)
    |-- classes 目录(java的字节码文件)
    |-- lib 目录(当前项目所需要的第三方jar包)
    |-- web.xml 文件 (当前项目核心配置文件,servlet3.0可以省略)
    |-- index.html or index.jsp

2.3 Idea中使用Tomcat

我们后续要用代码编写动态资源,所以idea中使用tomat非常重要的

2.3.1 配置Tomcat

(工具栏居中,不然默认显示在右侧)

在这里插入图片描述

在这里插入图片描述
再次点击,确定是否配置成功…
在这里插入图片描述

2.3.2 创建Web项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3.2 发布Web项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3.4 页面资源热更新

在这里插入图片描述

2.3.5 经验值分享

在这里插入图片描述

三 Http协议

3.1 Http协议概述

超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

传输协议:在客户端和服务器端通信时,规范了传输数据的格式和内容
在这里插入图片描述

#. 1. http协议的特点
	1). 基于tcp协议 : 三次握手,保障数据安全,相对udp效率低
	2). 默认端口 80 (省略不写)
	3). 基于请求/响应模型
		一次请求对应一次响应 / 先有请求,再有响应
	4). 无状态协议(多次请求之间相互独立,不记录状态)	 
	
#. 2. http协议版本发展
	1). http1.0 (1996) : 每次请求都有一个新的连接(开销大,比较慢)
	2). http1.1	(1999) : 长连接,多个请求共用一个连接(开销小一些,比较快) 
						 传输的数据都是文本(比较慢), 不支持推送
						 目前!!!
	3). http2.0 (2015) : 传输的数据经过压缩的,效率很高, 支持推送	
	4). http3.0 : 2019,想基于udp
	
# 3. http协议的内容
	1). 请求报文: 浏览器发送给服务器的数据 
		请求行, 请求头, 请求体
	2). 响应报文: 服务器发送给浏览器的数据
		响应行, 响应头, 响应体

# 4. 抓包工具
	1. 在浏览器和服务器交互的时候(发送请求,然后响应),我们可以使用工具抓取数据查看
	2. google浏览器内置开发者工具

3.1.1 chrome(谷歌)——按键f12

在这里插入图片描述

3.2 Http请求

3.2.1 浏览器查看Http请求协议

① get方式
在这里插入图片描述
② post方式
在这里插入图片描述
在这里插入图片描述

3.2.2 HTTP请求消息格式

① 请求行

* 格式
		请求方式 请求路径 协议/版本号
		
* 例如
		POST /day07_myapp/static/login.html HTTP/1.1
		GET /day07_myapp/static/login.html?username=jack&password=123 HTTP/1.1
		
* 请求方式区别
	get
		1.请求参数在地址栏显示(请求行)
		2.请求参数大小有限制
		3.数据不太安全
	post
		1.请求参数不在地址栏显示(请求体)
		2.请求参数大小没有限制
		3.数据相对安全
		(上传文件和表单要用post,其他请求两种都可以)

② 请求头

* 格式
		请求头名称:请求头的值
* 例如   
		Host: localhost:8080

常见请求头

		------------------------------------------(了解)
1. Host: localhost:8080         访问服务器的地址(域名+端口)
2. Connection: keep-alive       长连接(http1.1协议)	
3. Upgrade-Insecure-Requests:1   客户端支持https加密协议  
			
		---------------------------------------(重点)
4. Referer: http://baidu.com    上一次请求的地址	
        防盗链....		
5. User-Agent:        客户端系统和浏览器版本
		User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) Chrome/63.0 Safari/537.36
		浏览器兼容性
			判断 : 服务器根据用户的浏览器版本, 返回响应的数据
				谷歌方式一 : 发送google浏览器可以解析的数据
				IE方式二 : 发送ie浏览器可以解析的数据
				火狐方式三 : 

③ 请求体(正文)

* 格式
		参数名=参数值&参数名=参数值...
* 例如
		username=jack&password=123
		
* 注意:
		get方式没有请求体,post方式才有

3.3 Http响应

3.3.1 浏览器查看Http响应协议

在这里插入图片描述
在这里插入图片描述

3.2.2 HTTP响应消息格式

① 响应行

* 格式
		协议/版本号 状态码
* 例如
		HTTP/1.1 200

* 常见状态码
	--------------- 用户可以正常访问页面
	200 :表示成功	
	302 :重定向(response学习)
	304 :从缓存中读取数据
		(如果这个资源没有变化,浏览器是会缓存的,下次请求,就直接从缓存中读取,提高效率)
	--------------- 用户无法正常访问页面
	404:请求资源未找到(not  found)
	405:请求的方法未找到(明天讲了servlet给大家演示....)
	500:服务器内部错误(java代码写错了.....)

② 响应头

* 格式
		响应头名称:响应头的值
* 例如
		Last-Modified: Mon, 13 Apr 2020 06:11:24 GMT

常见响应头

1. Location:通常与状态码302一起使用,实现重定向操作
		Location:http://www.itcast.cn
2. Content-Type:服务器告诉客户端,返回响应体的数据类型和编码方式
		Content-Type:text/html;charset=utf-8
3. Content-Disposition:服务器告诉客户端,以什么样方式打开响应体
		* in-line(默认):浏览器直接打开相应内容,展示给用户
		* attachment;filename=文件名:浏览器以附件的方式保存文件 【文件下载】
4. Refresh:在指定间隔时间后,跳转到某个页面
		Refresh:5;http://www.itcast.cn

③ 响应体(正文)

* 服务器返回的数据,由浏览器解析后展示给用户
   用户看到页面所有的内容,都是在响应体中返回的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值