Java Web学习--HTTP协议

Java Web学习--HTTP协议

第六章 HTTP协议

HTTP协议的简单介绍

HTTP:Hyper Text Transfer Protocol超文本传输协议。

HTTP是请求数据和响应数据的一种格式.

浏览器发送给服务器的数据:请求报文;服务器返回给浏览器的数据:响应报文。

http是无状态的

请求报文

**1.请求行 **

  • 请求的方式
  • 请求的URL
  • 请求的协议(一般都是HTTP1.1)

**2.请求消息头 **

  • 请求消息头中包含了很多客户端需要告诉服务器的信息,比如:我的浏览器型号、版本、我能接收的内容的类型、我给你发的内容的类型、内容的长度等等

3.请求主体

  • 请求体,三种情况
  • get方式,没有请求体,但是有一个queryString
  • post方式,有请求体,form data(表单)
  • json格式,有请求体,request payload

响应报文

1.响应状态行

  • HTTP协议版本
  • 响应状态码
  • 响应状态的说明文字

2.响应头

  • 包含了服务器的信息;服务器发送给浏览器的信息(内容的媒体类型、编码、内容长度等)

3.响应体

  • 响应体:响应的实际内容(比如请求add.html页面时,响应的内容就是

    <html><head><body><form....
    

会话跟踪技术session

session是一种会话跟踪技术.

  • 客户端第一次发请求给服务器,服务器获取session,获取不到,则创建新的,然后响应给客户端.

  • 下次客户端给服务器发请求时,会把sessionID带给服务器,那么服务器就能获取到了,那么服务器就判断这一次请求和上次某次请求是同一个客户端,从而能够区分开客户端

常用的API:

注意这里的request继承的是httpServlet.

          request.getSession() -> 获取当前的会话,没有则创建一个新的会话
          request.getSession(true) -> 效果和不带参数相同
          request.getSession(false) -> 获取当前会话,没有则返回null,不会创建新的

          session.getId() -> 获取sessionID
          session.isNew() -> 判断当前session是否是新的
          session.getMaxInactiveInterval() -> session的非激活间隔时长,默认1800秒
          session.setMaxInactiveInterval()->设置非激活时间间隔时长
          session.invalidate() -> 强制性让会话立即失效

session保存作用域

session保存的作用域是和具体的某一个session对应的.只有懈怠同一个session才能访问到相同的内容.

常用API:

  • void session.setAttribute(k,v)是一个类似map的东西哦k代表是键,v代表是值,v的数据类型为Object

  • Object session.getAttribute(k) 获取以前保存的值并且返回

  • void removeAttribute(k) 从session删除指定名称的值也就是删除k对应的v

02.会话跟踪技术

posted @ 2023-10-02 21:04  harper886  阅读(7)  评论(0编辑  收藏  举报