首页 > 其他分享 >2. HTML 进阶之HTTP请求

2. HTML 进阶之HTTP请求

时间:2023-07-06 16:34:01浏览次数:44  
标签:HTTP 进阶 form name Host HTML localhost 请求

1) 请求组成

请求由三部分组成

  1. 请求行
  2. 请求头
  3. 请求体

可以用 telnet 程序测试

2) 请求方式与数据格式

get 请求示例

GET /test2?name=%E5%BC%A0&age=20 HTTP/1.1 Host: localhost
  • %E5%BC%A0 是【张】经过 URL 编码后的结果

post 请求示例

POST /test2 HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 21

name=%E5%BC%A0&age=18

application/x-www-form-urlencoed 格式细节:

  • 参数分成名字和值,中间用 = 分隔
  • 多个参数使用 & 进行分隔
  • 【张】等特殊字符需要用 encodeURIComponent() 编码为 【%E5%BC%A0】后才能发送

json 请求示例

POST /test3 HTTP/1.1
Host: localhost
Content-Type: application/json
Content-Length: 25

{"name":"zhang","age":18}

要注意请求体格式

json 对象格式

{"属性名":属性值}

其中属性值可以是

  • 字符串 ""
  • 数字
  • true, false
  • null
  • 对象
  • 数组

json 数组格式

[元素1, 元素2, ...]

multipart 请求示例

POST /test2 HTTP/1.1
Host: localhost
Content-Type: multipart/form-data; boundary=123
Content-Length: 125

--123
Content-Disposition: form-data; name="name"

lisi
--123
Content-Disposition: form-data; name="age"

30
--123--
  • boundary=123 用来定义分隔符
  • 起始分隔符是 --分隔符
  • 结束分隔符是 --分隔符--

数据格式小结

客户端发送

  • 编码

    • application/x-www-form-urlencoded :url 编码
    • application/json:utf-8 编码
    • multipart/form-data:每部分编码可以不同
  • 表单只支持以 application/x-www-form-urlencoded 和 multipart/form-data 格式发送数据

  • 文件上传需要用 multipart/form-data 格式

  • js 代码可以支持任意格式发送数据

服务端接收

  • 对 application/x-www-form-urlencoded 和 multipart/form-data 格式的数据,Spring 接收方式是统一的,只需要用 java bean 的属性名对应请求参数名即可
  • 对于 applicaiton/json 格式的数据,Spring 接收需要使用 @RequestBody 注解 + java bean 的方式

3) session 原理

Http 无状态,有会话

  • 无状态是指,请求之间相互独立,第一次请求的数据,第二次请求不能重用
  • 有会话是指,客户端和服务端都有相应的技术,可以暂存数据,让数据在请求间共享

服务端使用了 session 技术来暂存数据

GET /s1?name=zhang HTTP/1.1
Host: localhost

GET /s2 HTTP/1.1
Host: localhost
Cookie: JSESSIONID=560FA845D02AE09B176E1BC5D9816A5D

session 技术实现身份验证

image

4) jwt 原理

jwt 技术实现身份验证

image

生成 token

GET /j1?name=zhang&pass=123 HTTP/1.1
Host: localhost

校验 token

GET /j2 HTTP/1.1
Host: localhost
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9._1-P_TLlzQPb1_lCyGwplMZaKQ8Mcw_plBbYPZ3OX28

标签:HTTP,进阶,form,name,Host,HTML,localhost,请求
From: https://www.cnblogs.com/NorthPoet/p/17532549.html

相关文章

  • 在html中使用vConsole
    在vue中可以自行安装vConsole,那么移动端怎么办呢<scriptsrc="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"></script><script>varvConsole=newVConsole();console.log('Helloworld');</script......
  • java http大文件断点续传上传问题
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......
  • XHTML与HTML5的区别
    最近在困惑html5和XHTML两者之间的具体区别,查看了百度、google和新浪等,他们首页的源码第一句都是<!Doctype html>这是HTML5的doctype声明,说明这些主流网站已经都普遍在运用HTML5了,因为HTML5不基于SGML(标准通用标记语言),所以不需要引用DTD(文档类型定义)。但是HTML5是一个还未......
  • java中http请求-okhttp使用连接池优化
    愿历尽千帆,归来仍是少年原因:避免频繁频繁的开关连接。1.Maven添加依赖<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.10.0</version></dependency>2.OkHttpConfiguration配置类......
  • 初识html[230706]
    基础认知目标:认识网页组成、浏览器、web标准概念铺垫网页有哪些部分组成?文字图片视频音频超链接背后本质是什么?前端程序员、工程师的代码代码是通过什么软件转换成用户眼中的页面?通过浏览器“解析和渲染”常见:IE、Firefox、Chorme(辅助、自带调试功能多)、Saf......
  • java http大文件断点续传上传功能
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭......
  • 常见抓包工具配置抓取HTTPS
    一、wireshark抓取https1.配置SSLKEYLOGFILE环境变量2.关闭Chrome浏览器后重新打开,确认sslkey.log文件已经添加3.配置wireshark  编辑–首选项–protocols–TLS4.开启wireshark抓包 二、Fiddler抓取https 1.Fiddler配置点击Tools>Options>HTTPS,勾选Decry......
  • C# .NET HttpWebRequest 显示指定SSL TLS 版本
    C#.NETHttpWebRequest显示指定SSLTLS版本 在程序启动时加入这段代码:ServicePointManager.SecurityProtocol=SecurityProtocolType.Ssl3|SecurityProtocolType.Tls|SecurityProtocolType.Tls11|SecurityProtocolType.Tls12; ServicePointManager.SecurityProto......
  • 使用html2canvas生成网页截图并下载
    1.安装依赖npminstallhtml2canvas--save2.引入依赖importhtml2canvasfrom"html2canvas";3.使用示例<template><div><a@click="toImage()">下载</a><divref="imageTofile"> 要截屏的控件内容</div>&......
  • Jmeter学习之六_进行https证书处理的工作
    Jmeter进行https证书处理的工作背景继续学习中,想着能够抓取一下https相关的信息所以计划些一下处理过程但是感觉自己这一块比较薄弱.场景设计这一块应该是专业人去搞,我这边先只是简单学习了解一下.创建证书要使用keytool工具创建证书打开终端或命令提示符,并转......