今天太晚了,还有Tomcat和Servlet明天再更新,hxdm见谅😉😀
目录
1、Web概述
1.1、 Web和JavaWeb的概念
1.2、JavaWeb技术栈介绍
1.2.1、B/S架构
1.2.2、静态资源
1.2.3、动态资源
1.2.4、数据库
1.2.5、HTTP协议
1.2.6、Web服务器
1.3、Web核心学习内容
2、HTTP
2.1、简介
2.2、HTTP协议特点
2.3、请求数据格式
2.3.1、格式介绍
2.3.2、GET&POST实例演示
2.4、响应数据格式
2.4.1、格式介绍
2.4.2、响应状态码
2.4.3、自定义服务器
文章学习目标:
Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。
在我们日常的生活中,经常会使用浏览器去访问百度、京东等这些网站,这些网站统称为Web网站。
我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义JavaWeb就是用Java技术来解决相关web互联网领域的技术栈。
学习完JavaWeb之后,就可以使用Java语言开发上述所说的网站。
而国内很多大型网站公司也是首选Java语言来解决web互联网相关的问题。
如下的公司的系统是使用Java语言编写:
使用Java语言开发互联网系统是有很多技术栈,下面详细介绍
深入了解JavaWeb技术栈之前,有一个很重要的概念:B/S架构
什么是B/S架构?
B/S 架构:Browser/Server,浏览器/服务器 架构模式,
它的特点是:客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。
浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。
可以通过下面这张图来回想我们的上网过程:
动态资源虽然可以处理逻辑,但是当用户来登录的时候,就需要输入用户名和密码等相关的信息,
这个时候又需要解决的一个问题是,用户在注册的时候填入的用户名和密码、以及我们经常会访问到一些数据列表的内容展示。
这些数据都存储在哪里?我们需要的时候又是从哪里来取呢?很明显这些是需要存储在数据库的。
以后数据库是部署在服务器上面的,可以存储大量的数据,以及快速的存取数据。
下面介绍数据库的处理逻辑。
数据库主要负责存储数据。
整个Web的访问过程就如下所示:
1、浏览器发送一个请求到服务端,去请求所需要的相关资源;
2、资源分为动态资源和静态资源,动态资源可以是使用Java代码按照Servlet和JSP的规范编写的内容
3、在Java代码中可以进行业务处理也可以从数据库中读取数据;
4、拿到数据后,把数据交给HTML页面进行展示,再结合CSS和JavaScript使其展示效果更好;
5、服务端将静态资源响应给浏览器;
6、浏览器将这些资源进行解析;
7、解析后将效果展示在浏览器,用户就可以看到最终的结果。
HTTP协议:主要定义通信规则
浏览器发送请求给服务器,服务器响应数据给浏览器,这整个过程都需要遵守一定的规则,之前学习过的TCP和UDP,这些都属于规则,这里我们需要使用的是HTTP协议,这也是一种规则。
到这为止,关于JavaWeb中用到的技术栈就介绍完了,这里面就只有HTTP协议、Servlet、JSP以及Tomcat这些知识是之前没有学习过的,所以整个Web核心主要就是来学习这些技术
整个Web核心,学习内容如下:
在此篇文章中,暂时先介绍HTTP、Tomcat、Servlet。
学习内容简介:
HTTP概念:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
注意:在浏览器中如果看不到上述内容,需要清除浏览器的浏览数据。chrome浏览器可以使用ctrl+shift+Del进行清除。
所以学习HTTP主要就是学习请求和响应数据的具体格式内容。
HTTP协议有它自己的一些特点,分别是:
无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。
这种特性有优点也有缺点:
请求之间无法共享数据会引发的问题,如:
其实是Java早已考虑到这个问题,并提出了使用会话技术(Cookie、Session)来解决这个问题。
刚才提到HTTP协议是规定了请求和响应数据的格式,下面介绍具体格式:
请求数据总共分为三部分内容,分别是请求行、请求头、请求体:
分别是GET[请求方式] /[请求URL路径] HTTP/1.1[HTTP协议及版本]
请求方式有七种,最常用的是GET和POST
2.请求头:第二行开始,格式为key: value形式
请求头中会包含若干个属性,常见的HTTP请求头有:
这些数据有什么用处?
服务端可以根据请求头中的内容来获取客户端的相关信息,有了这些信息服务端就可以处理不同业务需求,如:
3.请求体: POST请求的最后一部分,存储请求参数
如上图红线框的内容就是请求体的内容,请求体和请求头之间是有一个空行隔开。此时浏览器发送的是POST请求,为什么不能使用GET呢?这时就需要回顾GET和POST两个请求之间的区别了:
这个部分请查看我的另外一篇文章的"4.2、
HTML | 一文带你了解并上手前端三件套之HTML_︶ㄣ释然的博客-CSDN博客https://blog.csdn.net/qq_60735796/article/details/128956983?app_version=5.14.3&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128956983%22%2C%22source%22%3A%22qq_60735796%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app
小结:
响应数据总共分为三部分内容,分别是响应行、响应头、响应体
响应头中会包含若干个属性,常见的HTTP响应头有:
3、响应体: 最后一部分。存放响应数据下图中.