HTTP协议与Web服务端开发环境

1 HTTP协议

协议: 经过谈判、协商而制定的共同承认、共同遵守的文件

        超文本传输协议,规定了浏览器和服务器之间数据传输的规则

特点:

        基于TCP协议:面向连接,安全

                基于请求-响应模型的:一次请求对应一次响应

                HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。

        优点:速度快

        缺点:多次请求间不能共享数据

        Java中使用会话技术(Cookie、Session)来解决这个问题

请求包括 请求行消息报头请求正文

请求数据分为3部分:

请求行请求方式 请求资源 http协议版本

                

        GET请求

        URL:协议,域名,端口,应用名称,资源名称

                地址栏(URI部分)会跟上参数数据以?开头,多个参数之间以&分割

                提交参数数据有限制,不超过1KB

                不适合提交敏感数据,如密码等

                浏览器直接访问的请求,默认提交方式是GET方式

        POST请求

                参数不会跟着URI后面。而是在请求的实体内容中。没有?开头,多个参数之间以&分割                 提交参数数据无限制

                适合提交敏感数据

http1.0:当前浏览器客户端与服务端建立连接后,只能发送一次请求,一次请求后连接关闭 http1.1:当前浏览器客户端与服务端建立连接后,可以在一次连接中发送多次请求。(基本都使用1.1)

请求头:第二行开始,格式为key:value形式。

        常见的HTTP 请求头:

        Host: 表示请求的主机名

        User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ... Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...) like Gecko;

        Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;

        Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;

        Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。

一个空行

请求体: POST请求的最后一部分,存放请求参数

响应也包括三个部分,分别是: 状态行、 消息报头、 响应正文

        响应数据分为3部分:

响应行:响应数据的第一行。HTTP/1.1表示协议版本,200响应状态码,OK状态码描述

        状态码:服务器处理请求的结果,由3位数字组成,第1个数字定义了响应的类别

        1xx:指示信息--表示请求已接收,要求客户端继续提交请求才能完成整个处理过程

        2xx:成功--表示请求已被成功接收、理解、接受,并已经完成整个处理过程

        3xx:重定向--要完成请求必须进行更进一步的操作

        4xx:客户端错误--请求有语法错误或请求无法实现

        5xx:服务器端错误--服务器未能实现合法的请求

响应头:第二行开始,格式为key:value形式 一个空行

响应体: 最后一部分。存放响应数据

网络分层模型

        

        应用层:面向具体应用的协议,如 Telnet、SSH、FTP、SMTP及HTTP 等

        传输层:TCP/UDP协议

        网络互联层:IP 协议

        链接层:负责在以太网、WiFi 这样的底层网络上发送原始数据包

客户端

        是在用户本地收集用户意图、与服务端通信、为用户展现服务结果的程序,例如网络聊天软件QQ、网络游戏程序等。

前端

        是客户端的一种,基于浏览器与服务端进行通信,用户可以提交请求,也可以展示服务端处理后的结果。

服务端

        运行在服务器上的程序,为客户端提供访问接口,能够接受客户端的请求,并对其进行响应

C/S结构

        客户端-服务器端结构,用户通过客户端软件向服务端发送请求,服务端进行业务处理,并将处理结果响应给客户端。

特点

        可以实现跨平台,客户端零维护,响应速度依赖服务器性能及网络带宽

B/S结构

        浏览器端-服务器端结构,开发人员不需要开发任何客户端界面,而统一采用标准的浏览器作为通用客户端,用户通过浏览器作为代理向Web服务器发送请求,Web服务器进行业务处理,并将处理结果响应给浏览器。

特点

        桌面级应用,响应速度快,安全性强,个性化能力强,响应数据较快。

2 Tomcat服务器

Web服务器

已知HTTP协议,如何用Java基础知识实现Web服务?

        1. 手动解析HTTP请求;

        2. 逻辑处理

        3. 手动封装数据,按照HTTP协议封装数据

        静态资源:HTML、CSS、JavaScript、图片等。负责页面展现

        动态资源:Servlet、JSP 等。负责逻辑处理

        数据库:负责存储数据

        HTTP协议:定义通信规则

        Web服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据

Web服务器是一个应用程序(软件),对 HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。

Tomcat

启动软件

        找到%Tomcat%/bin/startup.bat ,双击这个文件,弹出窗口,显示信息(不要关闭此窗口)         打开浏览器,输出以下地址(http://localhost:8080)

关闭软件

        找到%Tomcat%/bin/shutdown.bat,双击这个文件即可!(或者直接关闭startup.bat启动的窗口)

        打开浏览器,输出以下地址(http://localhost:8080)。看到“无法连接”(最好先清空浏览器缓存)

Tomcat-配置文件

1.server.xml

        Tomcat的主配置文件,用于配置Tomcat服务器的基本参数,如端口号、连接器、虚拟主机等。

2.context.xml

        用于配置Tomcat的Context,用于控制Web应用的访问权限和资源访问

3.web.xml

        Web应用的部署描述符文件,用于配置Web应用的基本参数,如Servlet、Filter、Listener等。

Tomcat-常见问题

1.闪退问题

        原因:Tomcat软件是java语言开发的。 Tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。这个变量的作用找到Tomcat启动所需的jvm。

        解决办法; 到环境变量中设置JAVA_HOME的变量JAVA_HOME= C:\Program Files\Java\jdk1.x.0_xx (注意别配置到bin目录下)

2.startup.bat启动乱码

        原因:如果弹出窗口乱码,是因为在tomcat配置里默认的控制台日志输出编码为UTF-8,而Windows下控制台的默认编码格式为ANSI,因此需要调整输出日志编码

        解决办法:找到%Tomcat%/conf/logging.properties文件,找到其中的“java.util.logging.ConsoleHandler.encoding = UTF-8”,将值修改为ANSI即可。

3.端口占用的错误

        原因: Tomcat启动所需的端口被其他软件或另外的Tomcat实例占用了

        解决办法:

        a)关闭其他软件程序,释放所需端口

                查看指定端口占用:netstat -ano | findstr 8080

                查看指定PID的进程信息:tasklist | findstr 6980

                终止程序:taskkill /PID 6980 /F

        b)修改Tomcat软件所需端口

                找到并修改%Tomcat%/conf/server.xml文件

Tomcat-部署Web应用

        1、在webapps目录下创建一个文件夹,名字即为web应用名称

        2、放入case01.war

        3、启动服务器 、

        4、打开浏览器,输入地址访问目标(http://localhost:8080/case01/)

        案例2

        1、在webapps目录下创建一个文件夹,名字即为web应用名称

        2、放入静态资源,例如HTML、CSS、图片等文件

        3、启动服务器

        4、打开浏览器,输入地址访问目标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值