目录
1.HTTP协议是什么?
a.(HTTP协议作用?)HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
b.(HTTP协议传输内容?)HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
c.(HTTP协议的发展?)HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
2.HTTP主要特点
a.HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
b.HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
c.HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
d.HTTP简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
e.支持B/S(Browser/Server)及C/S(Client/Server)模式。
3.HTTP请求和响应
3.1HTTP请求
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
HTTP请求实例(基于Charles抓包数据):
POST /service.asmx/user_notepad?t=1589500883638 HTTP/1.1
Host: 127.0.0.1:9001
Content-Length: 122
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
content-type: application/json
Origin: http://127.0.0.1:9001
Referer: http://127.0.0.1:9001/app88/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: ASP.NET_SessionId=rxhnzy5kvnmzkzxbcgzqqpja
Connection: keep-alive
{
"user_id": 721,
"vin_num": "AAJJU7FX6H5008783",
"content": "123",
"apikey": "f2a3a7c9a7cf3a500d8cdd6bfdff9ebe"
}
a.第一行请求行,包含请求方法(POST),请求路径(/service.asmx/user_notepad?t=1589500883638),HTTP协议版本(HTTP/1.1);
b.第二行请求头,跟在请求行后面,说明请求服务器的附加信息;从第二行起为请求头部,HOST将指出请求的目的地;User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础;该信息由你的浏览器来定义,并且在每个请求中自动发送等等;
User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答;
User-Agent通用格式:
Mozilla/5.0 (平台) 引擎版本 浏览器版本号