HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),用于web服务器和客户端浏览器之间的超文本传输。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP特点:
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
媒体独立的:这意味着,只要客户端和服务器知道处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
![](https://img.haomeiwen.com/i3146237/0e34514e2d6483db.png)
HTTP请求:
HTTP请求包含三部分,分别是:
请求行:包含请求方法Method、服务器资源路径URL、HTTP版本信息Version;
请求头:包括一些访问的域名、用户代理、Cookie等信息;
请求体:HTTP请求的一些数据。
HTTP响应包含三部分,分别是:
状态行:包含HTTP版本Version、状态码、状态码原因短语(状态码含义:http网络请求 接口测试返回statusCode(状态码)含义);
响应头:包括搭建服务器的软件、发送响应的时间Date、回应数据的格式Content-Type等信息;
响应正文:响应的具体数据。
常用的HTTP请求方法:
GET: 请求指定的页面信息,并返回实体主体。
HEAD: 用于获取报头,与GET方法类似,只是不返回报文主体,一般用于验证URL是否有效。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE:请求服务器删除对应URL位置的文件。
OPTIONS:允许客户端查看服务器的性能。
GET方法与POST方法的区别:
1、get重点在从服务器上获取资源,post重点在向服务器发送数据;
2、get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/login?name=admin&password=123456,这个过程用户是可见的;post传输数据是,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的; 也因此post比get安全性更高;
3、get传输的数据量小,因为受URL长度限制,但效率较高;post可以传输大量数据;
4、get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。post支持标准字符集,可以正确传递中文字符。
常见的请求头
● User-Agent:产生请求的浏览器类型;
● Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ */* ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;
● Accept-Language:客户端可接受的自然语言;
● Accept-Encoding:客户端可接受的编码压缩格式;
● Accept-Charset:可接受的应答的字符集;
● Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;
● connection:连接方式(close 或 keepalive);
● Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;
请求头更多详情可查看——HTTP请求头
Content-Type常见的几种值
常见的媒体格式类型:
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/json : JSON数据格式
application/pdf :pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
网友评论