4. Http
4.1 什么是Http
Http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP上。
- 超文本:图片,音乐,视频,定位……
- 80
Https:安全的
- 443
4.2 Http请求
1.请求行
- 请求行中的请求方式:GET
- 请求方式:Get Post HEAD DELETE PUT
get:请求能够携带的参数比较少,大小有限制,会在浏览器的url地址栏显示数据,不安全但高效。post相反。
4.3Http响应
- 服务器--响应--客户端
1.响应体
Cache-Control :响应输出到客户端后,服务端通过该报文头属告诉客户端如何控制响应内容的缓存。常见的有:(默认 为private)
Location:当我们想要页面重定向redirect的时候,设置Location的属性值(地址)跳转到该地址
Cookie:缓存信息
2.响应状态码
1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急...
2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
4.4两个时代
http1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。
http2.0:客户端可以与web服务器连接后,只能获得多个web资源。
常见面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到网页能够展示回来,经历了什么?
6.Servlet
6.1 Servlet简介
- 用于开发动态web,API中有一个接口Servlet,用java编写一个类实现,部署到web服务器中,就能开发一个Servlet程序。
6.2 HelloServlet
- 编写一个普通类。实现Servlet接口,这里我们直接继承HttpServlet(java已经写好HttpServlet)。
- 编写Servlet映射:JAVA程序通过浏览器访问,浏览器需要连接web服务。所以需要在web服务中注册我们写的Servlet,还需要给一个浏览器能够访问的路径。
- 配置Tomcat:注意配置项目发布的路径。
- 启动测试:target出来就是我们的网站。.jsp是页面。
6.3 Servlet原理
6.4 Mapping问题
- 一个Servlet可以指定多个映射路径、通用路径
- 一个Servlet可以自定义后缀实现请求映射:*.qinjiang(*前面不能加项目映射的路径)
- 优先级问题 :固有路径最高,找不到就会走默认的处理请求
6.5 ServletContext
web容器在启动的时候,它会为每个web程序创建一个对应的ServletContext对象,它代表了当前的web应用。
- 共享数据:我在HelloServlet中存的数据,以在其他Servlet如GetServlet拿(用两个servlet就要在web.xml中配两个servlet)。访问结果:先用存数据,再用GetServlet取数据。
6.6HttpServletResponse
6.7HttpServletRequest