• HTTP学习


    1、HTTP简介

    概念:超文本传输协议,规定了浏览器和服务器之间数据传输规则

    HTTP协议特点:

    1、基于TCP协议:面向连接,安全

    2、 基于请求—响应模型的:一次请求对应一次响应

    3、HTTP协议是无状态的协议:对于实物处理没有记忆能力。每次请求响应都是独立的

          缺点:多次请求间不能共享数据

          优点:速度快

     2、HTTP—请求数据格式

    1. package first;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.util.Enumeration;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.annotation.WebServlet;
    7. import javax.servlet.http.HttpServlet;
    8. import javax.servlet.http.HttpServletRequest;
    9. import javax.servlet.http.HttpServletResponse;
    10. import org.apache.jasper.tagplugins.jstl.core.Out;
    11. /**
    12. * Servlet implementation class Servlet01
    13. */
    14. @WebServlet("/Servlet01")
    15. public class Servlet01 extends HttpServlet {
    16. private static final long serialVersionUID = 1L;
    17. /**
    18. * @see HttpServlet#HttpServlet()
    19. */
    20. public Servlet01() {
    21. super();
    22. // TODO Auto-generated constructor stub
    23. }
    24. /**
    25. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    26. */
    27. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    28. // TODO Auto-generated method stub
    29. //response.getWriter().append("Served at: ").append(request.getContextPath());
    30. String account=request.getParameter("account");
    31. String psd=request.getParameter("psd");
    32. PrintWriter out=response.getWriter();
    33. out.println(account);
    34. out.println(psd);
    35. Enumeration headers=request.getHeaderNames();
    36. response.setContentType("text/html;charset=utf_8");
    37. while(headers.hasMoreElements()) {
    38. String header_name=headers.nextElement();
    39. String header_value=request.getHeader(header_name);
    40. out.println("

      "+header_name+":"+header_value+"h1");

    41. }
    42. out.println("

      "+request.getRemoteAddr()+"

      ");

    43. }
    44. /**
    45. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    46. */
    47. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    48. // TODO Auto-generated method stub
    49. doGet(request, response);
    50. }
    51. }

    host:localhost:8080h1

    connection:keep-aliveh1

    content-length:19h1

    cache-control:max-age=0h1

    sec-ch-ua:"Microsoft Edge";v="105", " Not;A Brand";v="99", "Chromium";v="105"h1

    sec-ch-ua-mobile:?0h1

    sec-ch-ua-platform:"Windows"h1

    upgrade-insecure-requests:1h1

    origin:http://localhost:8080h1

    content-type:application/x-www-form-urlencodedh1

    user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42h1

    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.9h1

    sec-fetch-site:same-originh1

    sec-fetch-mode:navigateh1

    sec-fetch-user:?1h1

    sec-fetch-dest:documenth1

    referer:http://localhost:8080/Chapter1/firstJSP.jsph1

    accept-encoding:gzip, deflate, brh1

    accept-language:zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6h1

    cookie:JSESSIONID=AD727F0589AD364C4C9ED5FF777CC4DFh1

    0:0:0:0:0:0:0:1

     

    请求数据的3部分:

    1. 请求行:请求数据的第一行(get:请求方式,/表示请求资源路径,HTTP/1.1表示协议版本)
    2. 请求头:第二行开始(格式为key:value形式)

           3. 请求体:POST请求的最后一部分(存放请求参数)

     

     GET请求和POST请求的区别:

    1、GET:请求参数在请求行中,没有请求体

          POST:请求在请求体

    2、GET请求:参数大小有限制

    3、HTTP—响应数据格式

    1、响应行:响应数据的第一行(HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述) 

    2、响应头:第二行开始,(格式为key:value)

    3、响应体:最后一部分(存放相应数据)

    响应状态码:

     

     

  • 相关阅读:
    【Debian 9(Stretch)】linux系统下安装gcc-9.3.0
    浮点数类型讲解
    将Qt组件状态信息保存为.ini的配置文件
    什么是超融合?与传统架构有什么区别?.
    【LC简单】387. 字符串中的第一个唯一字符
    【SOLIDWORKS学习笔记】特征成型
    vue3 如何将页面生成 pdf 导出
    “酷暑”结束,程序员待在大型互联网公司能一直安逸下去?
    Cocos Creator3.8 实战问题(三)去除scrollview背景色和label 对齐方式设置无效问题
    机器内存充足,Java程序却报native内存OOM的问题记录
  • 原文地址:https://blog.csdn.net/weixin_62190821/article/details/126923577