http报文格式(Content-Type)

http报文格式

参考HTTP请求报文(请求行、请求头、请求体)

HTTP请求报文由3部分组成(请求行+请求头+请求体):

在这里插入图片描述

请求行

①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。

②为请求对应的URL地址,它和报文头的Host组成完整的请求URL。

③是协议名称及版本号。

请求头

请求头包含若干个客户端属性信息。

请求体

请求体用于传输真正所需的数据(可以放POST请求参数或者是文件数据),图示请求体将一个页面表单(POST方式)中的组件值通过 param1=value1&param2=value2 的键值对形式编码成一个格式化串,用于传递多个请求参数。不但请求体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。

同理,http响应也可以分为响应行、响应头和响应体三部分

在这里插入图片描述

Content-Type 报文体内容类别

http的请求头部分有一个属性叫**Content-Type,**Content-Type用于表明请求体中数据的编码类型,服务器根据编码类型使用对应的解析方式,获取数据流中的数据。(Gin的ctx.PostForm方法只能解析表单格式编码的数据,无法用解析以json格式编码的数据)

Content-Type有以下类型:

  • 常见的页面资源类型:text/html, text/plain, text/css, text/javascript, image/jpeg, image/png, image/gif

  • 表单提交或上传文件的常用的资源类型:

  1. application/x-www-form-urlencoded。原生form默认的提交方式(最常用),默认情况下表单数据会编码为该类型。此时提交的数据将会格式化成类似username=111&age=2的形式。
  2. multipart/form-data。改类型不对字符编码,上传文件时使用。
  3. application/json。用于传递复杂的json对象(form形式的键值对太简陋,无法传递对象嵌套或者数组类型的数据。

补充跨域问题:跨域是指我们访问一个网站,如:http://127.0.0.1:8000这个url,从这个页面中又去访问http://127.0.0.1:9000这个url,这个时候就引发了跨域,当协议、域名、端口其中任意一个不同都会引发跨域。 此时9000端口的服务端可以接收到请求,也会给浏览器响应数据,但是到达浏览器后就被拦截了,因为浏览器的同源策略。

前后端分离开发的时候,就会遇到跨域的问题,一般可以通过前端部分设置代理的方法解决。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值