Http-笔记

HTTP协议

特点

  1. 基于TCP/IP的高级协议
  2. 默认端口号:80
  3. 基于请求/响应模型 即一次请求对应一次响应
  4. 无状态的:每次请求之间相互独立,不能交互数据

请求消息

请求消息格式

  1. 请求行

请求方式、请求url、请求协议/版本

GET /abc/demo1 HTTP/1.1
  1. 请求头

请求头名称:请求头值

Host: localhost:8888
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Edg/86.0.622.56
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: Idea-efd34b6e=c9ab810a-fa9a-4b0d-897d-5e7640aa74b1

常见:

  • Connection
  • Referer 告知服务器当前请求从哪里来,也就是说,发出此请求的网址。
    • 防盗链
    • 统计工作
  1. 请求空行

空行


  1. 请求体(正文)
  • 封装post请求信息的请求体的参数,get没有请求体。

Request与Response

  • 由服务器自动生成(大部分服务器都支持Servlet服务),直接使用。
  1. tomcat服务器会根据请求url中的资源路径,创建对应的处理请求的Servlet对象。
  2. tomcat服务器,会创建response和request对象,request对象封装请求消息数据。
  3. tomcat将request和response两个对象传递给service方法。
  4. 通过service方法中操作request对象并设置响应的消息数据 封装在response中,
  5. 服务器将response中的响应消息放入到响应数据包返回给浏览器。
request继承体系结构

ServletRequest – 接口
| 继承
HttpServletRequest – 接口
| 实现
org.apache.catalina.connector.RequestFacade 类

Request功能
  1. 获取请求行消息数据

String getMethod()
String getcontextPath() 获取虚拟目录
String getservletPath() 获取servlet路径
String getQuerrystring() 获取get请求方式请求参数:name = 张三
String getRequestURI() 获取请求URI
String getRequestURL() 获取请求URL
String getProtocol() 获取请求协议及其版本
String getRemoteAddr() 获取客服机IP

  1. 获取请求头数据

String getHeader(String name ) 通过请求投的名称获取请求头的值
Enumeration getHeaderNames() 获取所有的请求头名称

  1. 获取请求体数据
    只有post方法才有

步骤

  1. 获取流对象
> BufferReader  getReader()   获取字符输入流
> SerevletInputStream  getInputStream() 获取字节输入流
  1. 再从流对象中获取数据

  2. 其他功能

  • 获取请求参数(无论post get都可以用)

    String getParameter(String name) 根据参数获取参数值
    . String getParameterValues(String name) 根据参数获取参数值 的数组 多用于复选框
    Enumeration getParameterNames() 后去所有请求的参数名称
    Map<String,String[]> getParameterMap() 获取所有参数的map集合

  • 请求转发

  • 共享数据

  • 获取ServletContext


response继承体系结构

响应消息格式


updating…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值