http报文

http报文中有很多行,这些行的字段都是由一些ASCII码串组成,但各个字段的长度是不同的。HTTP报文可以分为两种,一种是从web客户端发往web服务端的HTTP报文,称为请求报文,另一种是从web服务端发往客户端的报文,称为响应报文。两种报文的格式的基本相同。

请求报文

image.png

  • 请求行

作用:用来说明客户端想要做什么
内容:包括方法字段GET和URL字段以及HTTP协议版本

  • 请求头

作用:通过客户端把请求的相关信息发给服务器
内容:包括媒体类型、语言类型、支持压缩、客户端类型、主机等信息。

  • 空行

作用:告诉服务器空行以下内容不属于请求头部信息。

  • 请求报文主体

作用:用来说明客户端具体想要做的事情。
内容:查看信息、应用post方法。

响应报文

image.png
请求报文的内容与格式有如下:

  • 状态行

作用:用来说明服务端响应客户端的状态。
内容:包括洗衣及版本号、数字状态码、状态情况

  • 响应头

作用:通过服务端把响应的相关信息给客户端
内容:包括Location、server、connect、vary等

  • 空行

作用:告诉客户端空行以下内容不属于响应头部信息。

  • 响应报文主体

作用:用来装载着要返回给客户端的数据
内容:包括文本、html、视频或者是图片。

Http方法

命令 说明
GET 获取指定URL的数据
PUT 提交数据
HEAD 仅获取文档首部
DELETE 删除指定页面

http状态码

1xx 处理信息,服务器收到请求,需要请求者继续执行操作;
2xx 请求成功,操作被成功接收并处理;
3xx 重定向,需要进一步的操作以完成请求;
4xx 客户端错误,请求包含语法错误或无法完成请求;
5xx 服务器错误,服务器在处理请求的过程中发生了错误;

Content-Type

ContentType是表明请求报文和响应报文的类型,一般get请求中不会传contentType,返回结果中往往会有content-type:
json格式:application/json;charset=utf-8
提交的post请求数据,一般有两种方式

  • application/x-www-form-urlencoded
  • multipart/form-data

一次完整的http请求

get和post的区别

get和post是http请求的两种方式,这两个方法的功能如同我们在字面意思中理解到的,get用于查询数据,post用于提交并更新数据。它们的区别主要体现在两点:1)get请求的参数在url后边,post的请求参数在请求体中;get请求的参数会保存在浏览器当中,post请求的参数不会保存在浏览器当中。

参考文献

[1]https://www.cnblogs.com/sharesdk/p/9310004.html http状态码
[2]https://blog.51cto.com/baishuchao/1927189 http请求流程