HTTP协议的版本和组成

本文记录TCP/IP学习过程中遇到的HTTP协议的版本和组成~

HTTP协议的版本

HTTP/1.0,发送请求,创建一次连接,获得一个Web资源,连接断开;
HTTP/1.1,发送请求,创建一次连接,获得多个Web资源,连接断开。

HTTP协议的组成

HTTP请求包括:请求行、请求头、请求体;

  • 请求行

示例代码:

POST /index.html HTTP/1.1

请求行必须在HTTP请求格式的第一行。

请求行格式:

请求方式 资源路径 协议/版本

请求方式(一共有7种,常用的有GET和POST):

  1. GET请求:将请求参数追加在URL后面,不安全。例如,form.html?username=oliver&password=123456,并且URL长度限制GET请求方式的数据大小。GET请求没有请求体;
  2. POST请求:请求参数显示请求体处,较安全,并且POST请求数据大小没有限制。只有表单设置为method="post"才是POST请求,其他的都是GET请求。
  • 请求头

示例代码:

Host:www.oliver.ren:80

请求头从第二行开始,到第一个空行结束。即请求头和请求体之间存在一个空行。请求头通常以键值对(key:value)方式传递数据:key为规范规定的固定值;value为key对应的取值,通常是一个值,可能是一组。

  • 请求体

通常情况下,只有POST请求方式才会使用到请求体,请求体中都是用户表单提交的数据,每一项数据都使用键值对(key=value),多组值使用&链接。

示例代码:

username=oliver&password=123456

HTTP响应包括:响应行、响应头、响应体。

  • 相应行

示例代码:

HTTP/1.1 200 OK

格式为:

协议/版本 状态码 状态码描述

状态码为服务器与浏览器用于确定状态的固定数字号码,常见的有:200-请求成功,302-请求重定向,304-请求资源没有改变,访问本地缓存,404-请求资源不存在,通常是用户路径编写错误,也可能是服务器资源已删除,500-服务器内部错误,通常是程序抛异常。

  • 响应头

响应头也是用的键值对,服务器通过响应头来控制浏览器的行为,不同的头浏览器操作不同。

  • 响应体

就是服务器发送给浏览器的正文。

标签: none