Http简述

简介

HTTP是超文本传输协议,定义了客户端服务器间传输数据的规则。
特点:

  1. 基于TCP/IP协议(三次握手)的高级协议
  2. 默认端口号是80(比如访问网站时候不要加上端口号是因为默认就是80)
  3. 基于请求响应模型,一次请求对应一次响应
  4. 无状态协议:每次请求之间相互独立,不能交互数据

请求消息格式

请求消息数据格式:

  1. 请求行
    请求方式 请求url 请求协议/版本
    get和post区别:
    get:
    1. 请求参数在请求行中,url之后
    2. 请求的url长度有限制
    post:
    1. 请求参数在请求体中
    2. 请求url长度无限制
    3. 相对安全

  2. 请求头
    请求头名称:请求头值
    常见请求头:
    1. User-Agent:浏览器告诉服务器使用浏览器的版本
    2. Referer:告诉服务器当前请求从哪里来,防止别人盗取连接,进行统计工作

  3. 请求空行
    空行(起分隔作用)

  4. 请求体
    正文(参数,get方式没有请求体)封装post请求的请求参数

Requset

  1. request和response对象原理:
    1. request和response对象由服务器创建,我们仅仅是使用
    2. request是用来获取请求消息,response是设置响应消息
  2. request继承的体系结构:
    ServletRequest 接口
    HttpServletRequest 子接口
    最后Tomcat实现并创建对象 实现类
  3. request功能:
    1. 获取请求消息
    1. 获取请求行数据:
    方法:
    1. 获取请求方式:String getMethod()
    2. ()获取虚拟目录:String getContextPath()
    3. 获取Servlet路径:String getServletPath()
    4. 获取get方式请求参数:String getQueryString()
    5. (
    )获取Url:String getRequestURI() String getRequestURL()
    6. 获取协议及版本好:String getProtocol()
    7. 获取客户机IP地址:String getRemoteAddr()
    2. 获取请求头数据
    方法:
    1. String getHeader(String name):根据请求头名称获取请求头
    2. Enumeration<String> getHeaderNames():获取所有请求头名称
    3. 获取请求体数据
    步骤:
    1. 获取流对象:
    BufferedReader getReader():获取字符输入流
    ServletInputStream getInputStream():获取字节输入流
    2. 再从流对象中拿取数据
    2. 其他功能
    1. 获取请求参数通用方式:
    1. String getParameter(String name):根据参数名称获取参数值
    2. String[] getParameterValues(String name):获取参数值数组(用于复选框)
    3. getParameterNames():获取参数名称
    4. Map<String,String[]> getParameterMap():获取所有参数的map集合
    2. 请求转发:一种在服务器内部资源跳转的方式
    1. 通过request对象获取请求转发器对象
    2. 使用requestDispatcher进行转发
    3. 特点:地址栏不发生变化;只能转发到当前服务器内部资源中;转发是一次请求
    3. 共享数据
    4. 获取servletcontext

响应消息格式

  1. 响应行
  2. 响应头
  3. 响应空行
  4. 响应体:就是页面展示的HTML内容

response对象

其中注意请求转发forward和重定向redirect的区别

ServletContext

代表整个web应用
可以和程序的容器通信(服务器)
功能:
1. 获取MIME类型
2. 域对象:共享数据
3. 获取文件的真实路径(服务器)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值