1、基本概念
1.1、前言
web开发:
- web,网页的意思 , www.baidu.com
- 静态web
- html,css
- 提供给所有人看的数据始终不会发生变化!
- 动态web
- 类似淘宝的所有网站都是动态web
- 提供给所有人看的网页内容在不同时刻不同地点都是不同的
- 技术栈:Servlet/jsp, ASP, PHP
在java中,动态web资源开发的技术统称为Javaweb
web应用程序
web应用程序:可以提供浏览器访问的程序
- a.html, b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务;
- 我们能访问到的任何一个页面或者资源,都存在这个世界的某个角落的计算机上;
- URL:同一资源定位符:就是我们所说的网址
- 这个统一的web资源会被放在同一个文件夹下
- 一个web应用由多个部分组成(静态web,动态web)
- HTML, CSS, js
- jsp, servlet
- java程序
- jar包
- 配置文件(Properties)
web应用程序写完后,若想提供给外界访问:需要一个服务器来统一管理
1.3、静态web
静态web的访问:通过服务器上的*.html或者*.htm文件来直接获取
- 静态web的缺点
- web页面无法动态更新,所以用户看到的都是同一个页面
- 无法和数据库交互
1.4、动态web
页面动态显示,因人而异
动态web的缺点:
- 加入服务器的动态web资源出现了错误之后,需要重新编写后台程序,停机更服重新发布
优点: - web页面动态更新,所有用户看到的都不是同一个页面
- 可以和数据库交互
服务器
通过第一部分学习,我们实现网站被别人访问需要服务器,这里我们学习Tomcat服务器
web服务器:Tomcat服务器
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,它是最佳的选择
Tomcat 实际上运行JSP 页面和Servlet。Tomcat最新版本为9.0。
发布一个网站
我们模仿Tomcat服务器,Tomcat中指定的web应用文件夹webapps中创建自己的网站
网站应有的结构:
--webapps :Tomcat服务器的web目录
-ROOT
-kuangstudy :网站的目录名
- WEB-INF
-classes : java程序
-lib:web应用所依赖的jar包
-web.xml :网站配置文件
- index.html 默认的首页
- static
-css
-style.css
-js
-img
-.....
4、Http
4.1、什么是HTTP
HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html,字符串,~ ….
- 超文本:图片,音乐,视频,定位,地图…….
- 80
Https:安全的
- 443
4.2、两个时代
- http1.0
- HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
- http2.0
- HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。‘
4.3、Http请求
- 客户端—发请求(Request)—服务器
百度:
Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200
Remote(远程) Address:14.215.177.39:443
Accept:text/html
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9 语言
Cache-Control:max-age=0
Connection:keep-alive
1、请求行
- 请求行中的请求方式:GET
- 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
- post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
2、消息头
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
4.4、Http响应
- 服务器—响应-----客户端
百度:
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
1.响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
2、响应状态码
200:请求响应成功 200
3xx:请求重定向
- 重定向:你重新到我给你新位置去;
4xx:找不到资源 404
- 资源不存在;
5xx:服务器代码错误 500 502:网关错误
常见面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?
先在本机的C:\Windows\System32\drivers\etc\host下查找是否有这个域名映射
- 有:直接返回对应的IP地址,这个地址中有我们想要的web程序,可以直接访问
- 没有:去DNS服务器查找,找到就返回,找不到就返回找不到