Http&Get-一次参数值过长而报错的探索之旅

POST VS GET(一次传参问题解决之旅)post和get都是Http协议中定义的两种发送请求的方法HTTP是基于TCP/IP的关于数据如何在网络中如何通信的协议所以其实GET 和 POST 只是HTTP发送请求的两种形式,本质上都是TCP/IP链接最直观来说,非得给get带上body,给post带上url参数,也是可以的HTTP协议Get VS Post 之前还是搞明白Http协议规定了哪些东东HTTP是’Hyper Text Transfer Protocol’(超文本传输协议)的缩
摘要由CSDN通过智能技术生成

POST VS GET(一次传参问题解决之旅)

post和get都是Http协议中定义的两种发送请求的方法

HTTP是基于TCP/IP的关于数据如何在网络中如何通信的协议

所以其实GET 和 POST 只是HTTP发送请求的两种形式,本质上都是TCP/IP链接

最直观来说,非得给get带上body,给post带上url参数,也是可以的

HTTP协议

Get VS Post 之前还是搞明白Http协议规定了哪些东东

HTTP是’Hyper Text Transfer Protocol’(超文本传输协议)的缩写, 是用于从WWW服务器传输超文本到本地浏览器的传送协议,HTTP协议一般承载于TCP协议之上,有时候也承载于TLS、SSL协议之上(HTTPS),默认http端口为80,https端口为443

协议承载图如下

在这里插入图片描述

响应模型

HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系,且永远是客户端发送请求(request),服务端返回响应(reponse),因此无法实现在客户端没有发送请求时,服务器将消息推送给客户端

一次响应过程大致分为以下几步

  • 客户端和服务器建立连接(使用url)
  • 客户端发送request,包含统一资源标识符(url)、协议版本号、MIME信息(修饰符、客户机信息等内容)
  • 服务端返回reponse,包含协议版本号、状态码、MIME信息(服务器信息、实体信息等内容)
  • 断开连接
request

request是由客户端发送给服务端的请求信息,协议规定了4个部分:请求行,请求头,空行,请求数据

在这里插入图片描述

实例:

POST /test HTTP/1.1
Host: com.test.test
Connection: keep-alive
Content-Length: 124
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Type: application/json;charset=UTF-8
Origin: https://com.test.test
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://com.test.test/html/test
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: userId=1

{"object":"test"}
response

response是服务定返回给客户端的响应报文,也规定了4个部分:状态行、响应头、空行、响应正文

实例:

HTTP/1.1 200 OK
Server: nginx/1.8.1
Date: Wed, 12 Aug 2020 11:53:45 GMT
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://com.test.test
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 3600
Access-Control-Allow-Headers: Origin, Accept-Language, Accept-Encoding,X-Forwarded-For, Connection, Accept, User-Agent, Host, Referer,Cookie, Content-Type, Cache-Control
Access-Control-Request-Method: GET,POST,OPTIONS

{"object":"test"}
Request Method

http实际上定义了8种请求方式:

  • options:针对特定资源的请求方式,一般用于测试服务是否可用
  • head:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息
  • get:向特定的资源发出请求
  • post:向指定资源提交数据进行处理请求(例如提交表单或者上传文
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在运行该命令时遇到错误,请根据您的错误消息尝试以下解决方案: 1. 错误消息:E: Unable to locate package mysql-server-8.0 这意味着您的系统中没有安装MySQL服务器8.0版本。请尝试使用以下命令安装MySQL服务器: sudo apt-get update sudo apt-get install mysql-server 2. 错误消息:E: Unable to locate package mysql-server-8.0 这意味着您的系统中没有安装MySQL服务器8.0版本。请尝试使用以下命令安装MySQL服务器: sudo apt-get update sudo apt-get install mysql-server 3. 错误消息:Package 'mysql-server-8.0' is not installed, so not removed 这意味着MySQL服务器8.0版本未安装。因此,不需要删除该软件包。如果您想删除MySQL服务器,请尝试使用以下命令: sudo apt-get remove --purge mysql-server 4. 错误消息:E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. 这意味着在安装或卸载软件包时发生了错误,并且dpkg工具无法自动修复问题。请尝试使用以下命令修复dpkg: sudo dpkg --configure -a 然后再次运行您的原始命令。 5. 错误消息:E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) 这意味着另一个进程正在使用dpkg工具,并且您无法同时运行两个dpkg进程。请等待另一个进程完成或尝试使用以下命令杀死该进程: sudo killall dpkg 然后再次运行您的原始命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值