Day14-HTTP协议 & web开发概述 & servlet快速入门
来源:互联网 发布:上知教育一个月多少钱 编辑:程序博客网 时间:2024/05/17 13:10
HTTP:HyperText Transfer Protocol
超文本传输协议
用于定义web浏览器和web服务器之间交换数据的过程
特点:
基于请求/响应模型的协议。请求和相应必须成对出现,现有请求后有响应。
HTTP协议的默认端口是80;
组成:
HTTP请求协议和HTTP响应协议;(成对出现)
HTTP请求协议包含:请求行、请求头、请求体;
HTTP响应协议包含:响应行、响应头、响应体;
请求部分
//请求行GET http://localhost/day14_tomcat/test.html?username=zs&password=123 HTTP/1.1 //请求头Host: localhostConnection: keep-aliveContent-Length: 24Cache-Control: max-age=0Origin: http://localhostUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36Content-Type: application/x-www-form-urlencodedAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Referer: http://localhost/day14_tomcat/login.htmlAccept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.8Cookie: _ga=GA1.1.874373530.1497766826//请求体username=zs&password=123
请求部分:
//请求行:
GET http://localhost/day14_tomcat/test.html?username=zs&password=123 HTTP/1.1
格式: 请求的方式 请求的资源地址 协议/版本 请求方式(8种): get : 1.提交的参数在地址栏 2.携带的数据有限制 3.不安全 post: 1.提交的参数在请求体中 2.提交的数据没有大小限制 3.相对来说安全 HTTP/1.1 协议版本和HTTP/1.0协议版本的区别: HTTP/1.0: 发送一次请求,响应回来之后就断开 HTTP/1.1: 发送一次请求,响应回来之后,仍然保持连接//请求头: 格式: key:value (value可能有多个值)Accept: text/html,image/*,text/css, text/javascript,image/jpeg, image/gif 大类型/小类型 mime类型 --浏览器可以支持数据类型Accept-Charset: ISO-8859-1(不支持中文) --字符集Accept-Encoding: gzip --支持压缩Accept-Language:zh-cn --语言环境Host: www.itcast.cn:80 --访问主机If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --缓存文件的最后修改时间 ,问服务器这个文件这个时间之后是否有修改过Referer: http://www.itcast.com/index.jsp --来自哪个页面、防盗链User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) --代表的是用户所使用的浏览器的版本 ,文件下载 不同的浏览器文件名称编码 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 火狐/网景 :Mozilla/5.0 Gecko 微软 : IE : Windows NT 10.0; Win64; x64 微软: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko Linux: Mozilla/5.0 (Windows NT 10.0; Win64; x64) (KHTML , like Gecko) Safari/537.36 APPLE : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML , like Gecko) Safari/537.36 CHROME : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36Cookie --代表的缓存 --Cookie SessionConnection: Keep-Alive --链接状态
响应部分
HTTP/1.1 200 OK //响应行Server: Apache-Coyote/1.1 //响应头Accept-Ranges: bytesETag: W/"177-1497947263889"Last-Modified: Tue, 20 Jun 2017 08:27:43 GMTContent-Type: text/htmlContent-Length: 177Date: Tue, 20 Jun 2017 08:42:56 GMT<!DOCTYPE html> //响应体<html><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <h3>hello from eclipse123</h3> <div> </div></body></html>
//响应部分:
响应行: HTTP/1.1 200 OK
格式: 协议/版本 状态码 状态码的说明
状态码: 1xx: 基本上看不到, 服务器已经接收到了请求 2xx: 服务器已经成功处理了请求 200 请求成功 3xx: 服务器已经处理了请求,但是需要浏览器进一步操作 302 : 请求重定向: 请求我已接收,但是处理不了, 需要浏览器再去请求其它资源 304: 告诉浏览器使用本地缓存 4xx: 客户端请求的资源有问题 404 : 找不到对应的资源, 5xx: 服务器发生了错误 500:错误, 服务器程序发生了异常响应头:Location: http://www.it315.org/index.jsp --跳转的连接地址, 结合请求重定向来处理 302Content-Type: text/html; charset=GB2312 --响应的数据类型 , 响应内容所使用编码格式: 告诉浏览器以什么样的编码去解析Refresh: 1;url=http://www.it315.org --定时刷新 秒数;url="连接地址"Content-Disposition: attachment; filename=aaa.zip --下载 下载文件的时候必须指定一个头Server:apache tomcat --服务器型号Content-Encoding: gzip --数据压缩Content-Length: 80 --数据长度Content-Language: zh-cn --语言环境Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --最后修改时间Set-Cookie:SS=Q0=5Lb_nQ; path=/search --缓存 CookieExpires: -1 --缓存Cache-Control: no-cache --缓存Pragma: no-cache --缓存Connection: Keep-Alive --保持连接连接响应体: 页面上要显示的内容<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <form action="test.html" method="post"> <div>用户名:<input type="text" name="username"/></div> <div>用户名:<input type="password" name="password"/></div> <div><input type="submit" value="登录"/></div> </form></body></html>
web开发概述:
软件架构:
C/S架构: Client/Server客户端/服务器端;要求客户端电脑安装一个客户端程序 优点: 1)用户体验好,效果炫 2)对信息安全的控制较强 3)应用服务器运行数据负荷较轻,部分计算功能在客户端完成 缺点: 1)占用硬盘空间 2)维护麻烦 3)安装使用依赖于其他条件。 B/S架构 Browse/Server 浏览器/服务器,通过浏览器和服务器交互,不需要安装其他程序; 优点: 1)维护和升级简单,无缝升级; 2)不用安装程序,操作系统内置了浏览器; 缺点: 1)动画效果受浏览器限制 2)对信息安全控制较差; 3)应用服务器运行数据负荷较中,大部分计算机都在服务器端,增加服务器的压力。
web服务器:
(JavaEE企业级开发规范,也叫J2EE,在Java中,规范就是接口。)
常见的 web服务器:
1)Tomcat;Apache组织提供的一个免费的小型的服务器。
2)WebLogic:Bea公司一个收费的大型服务器软件,后被Oracle收购。
3)WebSphere:IBM公司的一个收费的大型服务器软件
Servlet快速入门
现在src下面下class文件,实现Servlet接口
package com.itheima.servlet;import java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletResponse;//单例设计模式,每次调用的时候都是调用同一个对象public class HelloServlet implements Servlet { @Override public void init(ServletConfig arg0) throws ServletException { // TODO Auto-generated method stub } @Override //每次访问的时候都执行,每个请求到达的时候,tomcat都会创建一个新的线程,在线程中调用service方法。 public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { // 专门向客户端提供相应的方法。 HttpServletResponse response = (HttpServletResponse) arg1; response.getWriter().write("this is my first servlet!!!"); } //----------------------------------------------------------------------- @Override public void destroy() { // TODO Auto-generated method stub } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; }}
然后再在web.xml核心配置文件里面进行配置:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Day14_0618_01</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!--声明一个servlet路径--> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.itheima.servlet.HelloServlet</servlet-class> </servlet> <!--配置映射路径--> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/abc</url-pattern> </servlet-mapping></web-app>
什么是Servlet:
Servlet是运行在服务端的java小程序,是sun公司提供的一套规范,用来处理客户端请求、相应给浏览器的动态资源。
servlet 是运行在 Web 服务器中的小型 Java 程序。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
要实现此接口,可以编写一个扩展 javax.servlet.GenericServlet 的一般 servlet,或者编写一个扩展 javax.servlet.http.HttpServlet 的 HTTP servlet。
此接口定义了初始化 servlet 的方法、为请求提供服务的方法和从服务器移除 servlet 的方法。这些方法称为生命周期方法,它们是按以下顺序调用的:
- 构造 servlet,然后使用 init 方法将其初始化。
- 处理来自客户端的对 service 方法的所有调用。
- 从服务中取出 servlet,然后使用 destroy 方法销毁它,最后进行垃圾回收并终止它。
除了生命周期方法之外,此接口还提供了 getServletConfig 方法和 getServletInfo 方法,servlet 可使用前一种方法获得任何启动信息,而后一种方法允许 servlet 返回有关其自身的基本信息,比如作者、版本和版权。
Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener),且最重要。
作用:
用来处理从客户端发送过来的请求,并对该请求做出响应 。
- Day14-HTTP协议 & web开发概述 & servlet快速入门
- Web开发入门--http协议
- HTTP协议详解和Servlet开发入门
- HTTP协议和Servlet概述
- WEB开发入门以及HTTP协议
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Web开发基础Tomcat的配置以及http协议概述
- 04-Servlet入门+http协议
- 【web开发-协议】HTTP协议
- 黑马第六天之web开发入门和HTTP协议
- web入门之Http协议
- HTTP协议概述及请求响应入门
- JSP&Servlet--Http协议及Web基础
- http协议和servlet入门笔记
- Web开发之HTTP协议
- web前端开发:Http协议
- javaweb开发入门-http协议
- HTTP协议与Servlet开发入门11月12日[原创]
- ActiveMQ的queue以及topic两种消息处理机制分析
- 典型的C++程序员成长经历
- 初创团队的Android应用质量保障之道
- 更改文本框的值(加法运算)
- 欢迎使用CSDN-markdown编辑器
- Day14-HTTP协议 & web开发概述 & servlet快速入门
- Android——Service服务介绍
- 用原生JS实现一个简单计算的功能实例
- JavaScript基本概述
- 断舍离学习
- 多维数组------八皇后问题
- MYSQL日期和时间函数
- EffectiveC++学习笔记-条款18|19
- ES6 的变量对象解构