Servlet-基于的HTTP协议

七层协议

名称(从下至上) 协议
物理层 EIA/TIA-232, EIA/TIA-499, V.35 …
数据链路层 Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 802.5/802.2 …
网络层 IP,IPX,AppleTalk DDP
传输层 TCP,UDP,SPX
会话层 RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP
表示层 TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML
应用层 FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP,HTTP

HTTP基于 TCP IP 等协议

通信

一次请求,一次链接:

请求数据包

组成:
- 请求行:请求方式 + 请求资源路径 + 协议版本
- 消息头:一些键值对 w3c定义,如
- Connection: keep-alive保持链接(on),降低请求次数,如果js等静态资源
- User-Agent: 浏览器版本信息
- 实体内容:请求参数,只有请求为post方式才会有

相应数据包

组成:
- 状态行:协议版本 + 版本 + 状态码 + 状态描述
- 消息头:键值对,如
- Content-Type:告诉浏览器返回的护具数据类型和字符集
- 实体内容:程序的处理结果

状态码

服务器执行完客户端请求以后,返回给客户端的一个执行结果的状态编码

状态码 含义
1xx 表示请求已接收,服务器进行后续处理处理
2xx 成功–表示请求已被成功接收、理解、接受
3xx 重定向–要完成请求必须进行更进一步的操作
4xx 客户端错误–请求有语法错误或请求无法实现
5xx 服务器端错误–服务器未能实现合法的请求

状态码-错误

403

  • 原因:往往是由于用户的操作没有权限,如在启用tomcat用户情况下,没有权限的用户访问/manager/status页面就会返回403错误
  • 解决:检查权限配置

404

  • 原因:Web服务器根据请求地址找不到对应资源
    • 地址错误、配置、部署错误等
    • 若是返回的jsp页面,也可能是jsp页面不存在
  • 解决:检查url-pattern流程是否正确

405

  • 原因:web服务器找不到service处理方法,如 url-pattern为 /user/gerUser.action?,而相应bean类或控制器没有该方法
  • 解决:检查controler类及方法

500

  • 原因:程序在运行中出错,如代码运运行时抛出异常等
  • 解决:检查配置和调试代码

你可能感兴趣的:(JavaWeb,http协议)