http:超文本传输协议
特点:
无状态(协议对事物处理没有记忆功能)、
无连接(每次连接只可以处理一个请求)、
简单快速(客户向服务器请求服务时,只需传送请求方法和路径)、
灵活(允许传输任意类型的数据对象)。
请求
请求:客户端发送给服务端的数据
请求组成:
请求行(提交方式、请求的url、http协议的版本)、
请求头(客户端发送给服务器自己的一些信息)、
空行(格式化请求体、便于阅读)、
消息体(发往服务器的一些值或者数据)
响应
响应:服务器返回给客户端的数据
响应组成:
状态行(http协议的版本、响应码、响应描述)、
响应行(服务器发送给客户端自己的一些信息)、
空行(格式化响应体,便于阅读)、
消息体(服务器返回的资源内容)、
常见响应码
响应码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见状态代码、状态描述、说明:
200 OK //客户端请求成功
302 //重定向
304 //取得是页面的缓存
400 Bad Request //客户端请求的参数异常
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
405 //方法调用错误
500 Internal Server Error //服务器端异常
502 //服务器宕机
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
请求转发和重定向区别:
重定向发送两次请求,请求转发一次请求
重定向地址栏发生变化,请求转发不变
重定向是从浏览器发送,请求转发是服务器内部
重定向不存在request域对象,请求转发可以使用request域对象
重定向是response的方法,请求转发是request的方法
重定向可以请求站外资源,请求转发不可以
web服务器
web服务器的缺陷:只能提供静态的内容。
servlet:用来解决服务器不能产生动态页面,而出现的一种辅助小程序。
容器对Servlet的支持包括:通讯支持、生命周期的管理、多线程支持、jsp支持、处理安全性。
servlet的作用:处理请求和响应
Servlet的API结构:Servlet(接口)- - ->GenericServlet(抽象类)- - ->HttpServlet(抽象类)- - ->自定义servlet
web.xml文件是web的核心文件,容器一启动就会加载这个文件。包含了servlet、jsp、过滤器等组件的所有信息。
classes文件夹存放编译好的源文件代码
lib文件夹存放引用的第三方架包。
WEB-INF下面的内容是不允许被客户端直接访问的。
查看端口号: netstat -an 查看被使用了的端口号。
查看PID: netstat -ano
查找ip ipconfig
tomcat
tomcat是一个服务器,实现了servlet和jsp规范要求的web容器。
bin文件:执行的p处理文件。
conf文件夹:存放服务器配置文件,servler.xml文件修改端口号等
temp:临时文件
webapps:存放项目的目录
work:存放jsp文件在运行时产生的java和class文件
tomcat启动的时候一闪而过 正确配置:JAVA_HOME或者端口号已经被占用了。Caused by: address already in use: bind 端口号被占用
端口冲突问题
修改tomcat的端口号.
打开tomcat/conf/server.xml
大概70行左右 有如下代码:
修改port后面的值就可以了.注意:1024以下的端口号留给系统用的
80端口是留给http协议用的.我们可以使用这个端口号