1.什么是HTTP?
HTTP:超文本传输协议(Hypertext Transfer Protocol)。
作用:浏览器和网站服务器(web服务)、服务器与服务器之间、手机APP与服务器之间传输超文本(网站、视频、图片)等信息的。
版本:0.9 1.0 1.1 2.0 目前使用的最广泛的,服务器往往支持的是1.1版本
2.HTTP的格式
1.请求报文
什么是请求报文?
请求报文:客户端发送一个HTTP请求到服务器的请求消息。
请求报文由请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
1.请求行
请求行:以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。
例如:请求行的格式往往是固定的(如图所示是最经典的两种请求行格式),GET和POST表示请求的方法,xiaowu/cainiao.html表示需要访问的网站地址 HTTP/1.1 表示使用的http协议版本是什么。
GET /xiaowu/cainiao.html HTTP/1.1
POST /xiaowu/cainiao.heml HTTP/1.1
另外除了,GET和POST之外,还有PUT和DELETE。
GET 表示从服务器获取资源信息,可以获取网页、图片、用户信息数据等。
POST 表示提交、添加资源信息到服务器处理,提交表单、上传文件、添加用户信息、上传图片数据到服务器等。
PUT表示更新资源信息
DELETE表示删除资源信息
2.请求头
请求头:第一行下面的内容,里面存放了一些信息。
例如:
HOST:www.xiaowu.com
#表示存放请求端存放的域名是什么
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
#表示存放客户端的类型是什么等等。
3.空行
空行:言简意赅,需要一个空行,用来分隔请求头和下面的部分(请求体)。
为什么要分隔?
因为请求头的内容不固定,有时很多、有时很少,如此分隔便可告诉端口,下面不再是请求头内容。
可以不分隔吗?
不可以,这是HTTP协议规定好的。
4.请求体
2.响应报文
什么是响应报文?
响应报文:服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
响应报文也由四个部分组成,分别是:响应行、响应头、空行和响应体。
1.响应行
响应行:格式与请求行类似,由空格分隔,HTTP协议版本号、状态码、状态消息三部分组成。
例如:HTTP/1.1 表示HTTP协议版本号,200即为状态码, OK即表示状态消息处理结果成功。
HTTP/1.1 200 OK
2.响应头
响应头:说明客户端要使用的一些附加信息。
例如:Date表示生成响应的日期时间等,Content-Type表示指定MIME类型的HTML,编码类型是UTF-8
Date: Thu, 19 Sep 2019 08:08:27 GMT
Content-Type: text/html;charset=utf-8
3.空格
空格:用来分隔消息报头和下面的部分(响应体)。