JAVAWEB学习(一)基本概念,Tomcat服务器,HTTP

1.基本概念:

1.1web开发的相关知识:

web即就是网页的意思,它用来表示Internet主机上供外界访问的资源,Internet上供外界访问的资源科分为:

静态web资源(Html):浏览器中供人浏览的数据是不变的;

动态web资源(jsp/servlet php asp):网页中供人浏览的数据是由程序提供的,不同的时间点,提供的数据是不相同的。

(在Java中动态web资源开发技术,统称为Javaweb)

1.2Web应用程序:

web应用程序就是浏览器访问的程序,通常简称为web应用。一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、servlet、java程序、支持jar包、配置文件等等。Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
1.3Web发展史:

静态web:服务器会直接的读取Html的数据;
在这里插入图片描述
缺点:

  • 用户浏览到的数据无法更新,所有用户看到都是同一个页面可以使用 :轮播图点击特效,伪动态;使用JavaScript,VBScript可以让它动起来
  • 它无法和数据库交互(数据无法持久化,用户无法交互)

动态web:
主要特征:会从服务器获取数据,web页面因人而变
在这里插入图片描述

优点:

  • 用户浏览到的数据可以更新
  • 可以和数据库交互(数据持久化:注册)
  • 可以实现真正的用户交互

1.4动态web的实现手段:

  • PHP:开发速度很快,功能很强大,跨平台,代码很简单;无法承载大访问量的情况(局限性)
  • ASP:微软国内最早流行的就是ASP;在HTML中嵌入了VB脚本,ASP+COM;在ASP开发中基本每个页面都有几千行业务代码,页面极其混乱;维护成本高。
  • JSP/Servlet : B / S架构 —>性能高;跨平台(使用字节码文件);

1.5一些web服务器:
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息
IIS(微软)
Tomcat(性能优良,非常小)
WebLogic
WebShare

(为什么要搭建web开发环境?)
在本地计算机上随便创建一个web页面,用户是无法访问到的,但是如果启动tomcat服务器,把web页面放在tomcat服务器中,用户就可以访问了。这说明什么问题?
  1、不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。
  2、WEB服务器就是这样一个程序,它用于完成底层网络通迅。使用这些服务器,We应用的开发者只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。

2.Tomcat服务器的研究:

在这里插入图片描述
启动Tomcat服务器
双击 bin 目录下的 startup.bat 文件启动Tomcat服务器

2.1 Tomcat配置

  • 可以配置启动的端口号:默认端口8080;在conf/server.xml配置文件配置了我们服务器相关一些服务,我们可以修改其内容,改变tomcat运行的端口号.
  • 可以配置主机的名称:默认的主机名为Localhost->127.0.0.1
  • 默认网站应用存放的位置为:webapps
    主机的名称localhost可以换为其他的吗:可以,浏览器在访问域名的时候会首先查看这个system文件下host文件的映射关系,然后再去dns服务商哪里转换,所以可以在server.xml文件下改主机名称,再在host文件中添加新主机名称->127.0.0.1的映射

可能面试题:请你谈谈网站是如何进行访问的?
1).输入一个域名:回车
2).检查本机的hosts配置文件下有没有这个域名映射

  • 有:直接返回对应的ip地址,在这个地址中有我们需要访问的web程序,可以直接访问
    127.0.0.1 www.jing.com
  • 没有:去DNS服务器找,找到的话就返回,找不到的话就返回找不到
    在这里插入图片描述

2.2 如何发布一个项目:

将项目拷贝到:tomcat-9.0.20\webapps 目录下,然后在cmd中,启动Tomcat,浏览器中输入相应的url。(注意:项目中必须要有一个 Web-INF目录 ,其中必定有一个web.xml)
网站应有的结构

--webapps:tomcat服务器的web目录
  --root
  --jing:网站目录名
    --web-inf
      --classes:java程序
      --lib:web应用程序所依赖的JAR包
      --web.xml网站配置文件
    --index.html默认的首页
    --static
      --css
        -style.css
      --js
      --img
    --.....

3.HTTP协议:

HTTP:超文本传输协议,详细的规定了浏览器和服务器之间进行通信的规则,通过网络传输HTML文档数据的协议,HTTP协议是一个应用层的协议,由请求和响应构成,一次请求一次响应。

默认端口:80

HTTPS:安全的

默认端口:443

3.1两个时代

HTTP1.0:使用短连接的方式,限制每次连接只处理一个请求,服务器处理完成之后并收到浏览器的应答之后.就会断开连接.这种方式的好处是可以节省传输时间.但是缺点是,我请求了一个HTML文档,这个文档中又包含了,其他JS文件,图片文件,CSS文件,每当浏览器,遇这样一个Web资源,就会建立一个会话,那这样的话需要消耗资源和时间的.

HTTP1.1:使用长连接.使用长连接的情况下,当一个网页打开完成后,客户端和服务端之间传输数据时,连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立好的连接.当然,这个连接不会永久保持,服务器中可以设置这个保持连接时间.

HTTP协议是一种无状态协议,什么叫协议的状态,就是指下一次传输可以记住本次传输数据的能力,那所谓无状态协议,就是http不会为了下一次连接,而维护本次连接所传输的数据,比如浏览器打开一个网页后,关闭浏览器,然后再次打开浏览器,但是服务器并不知道客户关闭了一次浏览器,所以HTTP是无状态协议,那如果说我们在一个网站中的多个页面间需要共享同一个数据,我们可以通过Cookie和Session来实现.

3.2HTTP请求Request

客户端—>发请求(Request)—>服务器

组成

  • 请求行:请求信息的第一
  • 请求头:从请求信息的第二行开始到请求空行结束
  • 请求体:从请求空行往下

请求行:GET /HTTPTest/login?username=zhangsan&password=123456 HTTP/1.1
格式: 请求方式 /请求的资源?请求参数 协议/版本

请求行方式常见的 get post
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏中显示数据内容,不安全但高效
post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏中显示数据内容,安全但不高效

请求头:

Accept: text/html,image --告诉服务器当前客户端可以接收的数据的类型。
Accept-Charset: ISO-8859-1 --告诉服务器,客户端提交的表单可能使用的编码类型。
Accept-Encoding: 浏览器发给服务器,声明浏览器支持的编码类型 GBK UTF-8 
Accept-Language:zh-cn --语言环境
cache-control:缓存控制
Host: localhost:8080 --访问主机

3.3HTTP响应Response

服务器----响应----客户端

响应行:响应信息第一行
HTTP/1.1 200 OK 格式: 协议/版本 响应状态码 响应的描述
常见的响应状态码
200:ok
302:重定向
404:请求的文件不在,一般是路径写错了
500:服务器代码写错了,Java程序有问题
响应头:响应信息第二行到响应空行
响应体:响应空行以下

常见的响应头
Location: http://www.baidu.org/index.jsp 	--让网页重新定位,跳转方向 302重定向
Server:apache tomcat			--服务器型号
Content-Encoding: gzip 			--编码
Content-Length: 80 			--数据长度
Content-Language: zh-cn 		--语言环境
Content-Type: text/html; charset=GB2312 --告诉浏览器,服务器返回的文本采用什么编码
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT	在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,
Refresh: 1;url=http://www.hehe.org		--定时刷新
Content-Disposition: attachment; filename=aaa.zip	--下载
Set-Cookie:SS=Q0=5Lb_nQ; path=/search   让浏览器将数据保存到本地
Expires: -1					--缓存  -1 就是让页面立即过期
Cache-Control: no-cache  --浏览器和缓存服务器都不应该缓存页面信息强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验
Connection: Keep-Alive   			--保持连接 长链接
Date: Tue, 11 Jul 2000 18:23:51 GMT

常见面试题:当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?

Guess you like

Origin blog.csdn.net/jingli456/article/details/113698821