Servlet——认识HTTP

概念

  • 全称:Hyper Text Transfer Protocol 超文本传输协议
  • 传输协议:定义了客户端和服务端通信时,发送数据的格式
  • 特点:
    1. 基于TCP/IP的高级协议
    2. 默认端口号:80
    3. 基于请求/响应模型的:一次请求对应一次响应
    4. 无状态的:每次请求之间相互独立,不能交互数据
  • 历史版本:
    • 1.0:每一次请求响都会建立新的连接
    • 1.1:复用连接

请求消息数据格式

  • Servlet代码:
@WebServlet("/demo3")
public class ServletDemo3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost...");
    }
}
  • login.html代码:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
    <form action="/demo3"  method="GET">
        <input name="username">
        <input type="submit" value="提交">
    form>
body>
html>
  • 表单中输入数据,点击提交,向服务器发出请求
    在这里插入图片描述
  1. 请求行
    • 请求方式 请求url 请求协议/版本
    • GET /login.html HTTP/1.1
      • 请求方式:
        • HTTP协议中有7种请求方式,常用的有两种
          • GET:
            1. 请求参数在请求行中,在url后
            2. 请求的url长度有限制的
            3. 不太安全
              在这里插入图片描述
          • POST:
            1. 请求参数在请求体中
            2. 请求的url长度没有限制
            3. 相对安全
              在这里插入图片描述
              在这里插入图片描述
  2. 请求头
    Servlet——认识HTTP_第1张图片
    • 请求头名称:请求头值
    • 常见的请求头:
      1. User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
        • 可以在服务器端获取该头的信息,解决浏览器的兼容性问题
      2. Referer : http://localhost/logoin.html
        • 告诉服务器,我(当前请求)从哪里来?
          • 作用
            1. 防盗链
            2. 统计工作
              Servlet——认识HTTP_第2张图片
  3. 请求空行
    • 空行,就是分割POST请求的请求头和请求体的
  4. 请求体(正文)
    • 封装POST请求消息的请求参数的
      在这里插入图片描述

你可能感兴趣的:(Servlet,http,java)