Http协议与HttpServletRequest对象

一、Http协议

Http协议:超文本传输协议,详细规定了浏览器与服务器之间相互通讯的规则。

Http协议主要分为俩部分:

  • 从浏览器到服务器:请求协议
  • 从服务器到浏览器:响应协议

本篇主要介绍的是请求协议及HttpServletRequest对象

二、请求协议组成

1、请求首行

2、请求头

3、请求体(get请求没有请求体

2.1、Get请求

在这里插入图片描述

请求首行:

GET /Day28Exerice/form.html?username=jack&password=123 HTTP/1.1

请求方式:GET

请求服务器路径:/Day28Exerice/form.html?username=jack&password=123(其中包括了用户提交的数据

协议与版本:HTTP/1.1

请求头:

  • Accept text/html, application/xhtml+xml, * / *

    告诉服务器,当前客户端可以接收的文档类型,其实这里包含了* / *,就表示什么都可以接收;

  • Referer http://localhost:8080/Day28Exerice/form.html?username=jack&password=123

    统计是通过点击什么连接进入本页

  • Accept-Language zh-CN

    当前客户端支持的语言,可以在浏览器的工具à选项中找到语言相关信息;

  • User-Agent Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; ASU2JS; rv:11.0) like Gecko

    与浏览器和OS相关的信息。有些网站会显示用户的系统版本和浏览器版本信息,这都是通过获取User-Agent头信息而来的;

  • Accept-Encoding gzip, deflate

    支持的压缩格式。数据在网络上传递时,可能服务器会把数据压缩后再发送;

  • Host localhost:8080

    请求的主机名为localhost;

  • Connection Keep-Alive

    客户端支持的链接方式,保持一段时间链接,默认为3000ms;

2.2、Post请求

在这里插入图片描述

请求首行:

Post请求方式的请求首行与Get请求基本相同,只是在其中的服务器路径中没有用户提交的数据

请求头:

其他与Get请求相同

如果以Post请求重复访问本页,将会多出一项:

  • Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98:

因为不是第一次访问这个地址,所以会在请求中把上一次服务器响应中发送过来的Cookie在请求中一并发送去过;这个Cookie的名字为JSESSIONID,然后在讲会话是讲究它!

请求体:

其中包含了用户提交的数据。

三、HttpServletRequest对象

HttpServletRequest它是ServletRequest接口的一个子接口!它对父接口进行了扩展,具备了处理Http请求协议的能力

当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中

这个对象主要是用于获取一切与请求相关的内容,我们学习这个对主要是学习里面的方法,这些方法都是围绕Http请求协议展开

3.1、操作请求首行的方法
方法功能
String getMethod()获取请求方式的类型
String getRemoteAddr()获得客户端的ip地址
String getContextPath()获得项目路径
String getRequestURI()获取请求行中的资源名部分
StringBuffer getRequestURL()获取客户端发出请求完整URL
String getProtocol()获取当前协议的名称和版本
int getLocalPort()获取端口
3.2、操作请求头的方法
方法功能
String getHeader(String name)以String 的形式返回指定请求头的值
Enumeration getHeaderNames()返回此请求包含的所有头名称的枚举
3.3、操作请求体的方法(GET请求没有请求体)
方法功能
String getParameter(String name)根据表单的name属性 获取对应的值
String[] getParameterValues(String name)获取name相同的所有value 如复选框。
Map<String,String[]>getParameteMap()参数名作为key,参数值作为value,封装到map中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值