JavaWeb基础
JavaWeb基础
什么是HTTP协议
- 超文本传输协议
- 是一种客户端浏览器与服务端数据传输的一种规范
- 无论是发送还是接收数据都要按照规范进行操作
- 特点:
- 它是以TCP/IP协议为基础的一个应用层协议
- 它是基于请求/响应的处理方式协议
- 它是一个无状态无连接的协议
- HTTP协议版本
- 1.0
- 一次请求/响应只能处理一件事
- 客户端浏览器在建立连接后,请求与响应只有一次
- 1.1
- 客户端浏览器在建立连接之后,会产生N次请求与N次响应
- 通过并发的方式产生
- HTTP协议原理
- 创建一个基于TCP/IP协议的连接
- 发送请求
- 返回响应
- 关闭连接
- HTTP协议结构
- 请求结构
- BufferReader bufferReader = new BufferReader(new InputStreamReader(socket.getInputStream()))
- 请求行
- GET/POST+URL+协议的版本
- 请求头
- 客户端给服务器提供的一些额外信息
- 请求体
- 客户端给服务器发送的数据内容
- 不是每次发送请求时都存在请求体,POST存在请求体,GET没有请求体
- GET请求和POST请求区别
- GET请求时,参数在 URL路径中
- POST请求时,参数不在URL中出现,而是产生请求体 -- Content-Length分格上下文标识的长度
- 响应结构
- 状态行
- 常见状态行
- 200 -- 正常
- 206 -- 部分内容异常
- 302/307 -- 临时重定向异常
- 400 -- 请求无效
- 401 -- 未经授权
- 404 -- 找不到地址
- 500 -- 服务端异常
- 响应头
- 响应体
- 服务端发送给客户端的一些额外信息
会话
- 会话称为Session
- 当客户端浏览器第一次访问服务端时,服务端会创建一个"标识",然后将标识响应客户端浏览器,客户端浏览器在第二次发送请求时,将携带这个标识发送给服务器。这个时候服务端就知道当前客户端的身份了
- HTTP协议是无状态无连接的,本身不具备识别客户端浏览器身份的,需要借助于提供的会话来实现状态识别的效果
- 特点:
- 在客户端浏览器不关闭的情况下,服务器会识别出客户端浏览器的身份
- 在客户端浏览器关闭的情况下,标识将会被清空,再次打开客户端浏览器时,标识就没有了,再次请求时,服务器识别不到客户单浏览器的身份,服务器就会创建一个新的标识,响应给客户端浏览器
- 在一个会话中,可以实现多个请求,并且可以通过会话来实现数据共享
如有问题,请发送邮件至buxiaqingcheng@163.com或者buxiaqingcheng@dingtalk.com