- http 协议是客户端与服务器端的数据传输的格式规范,简称为“超文本传输协议”。
- http 请求由三部分组成,分别是:请求行(包含请求方式、请求链接、协议版本),请求头(一般为key值对[referer:代表网页的来源,user-agent:客户端浏览器类型等]),请求体(post请求方式中的请求参数)。
- 常用的http方法有GET(用于请求访问已经被URI识别的资源,可以通过URL传参给服务器)、POST(用于传输信息给服务器,主要功能与Get相似),
其它方法有:
PUT(更新资源、传输文件)HEAD(HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息,一般用于验证URI是否有效。)
DELETE(删除文件,与PUT方法相反,删除对应URI位置的文件。)
OPTIONS(用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。) - GET方法与POST方法的区别:
1. GET重点在于获取服务器资源,POST在于向服务器发送数据;
2. GET传输数据是通过URL以key值对的形式传递的,POST是利用http的POST机制将字段与对应值封存在实体中发送给服务器的,不可见;
3. GET传输数据量小,因为受URL长度限制,但效率高;POST可传输数据量大,所以传输文件只能使用这种方法;
4. GET因为在URL可见,所以不安全,容易泄露信息;POST相对更加安全;
5. GET只支持ASCII字符,向服务器传输数据可能会乱码,而POST支持标准字符集 - 常见的HTTP响应状态码:
返回的状态:
1xx: 指示信息:表示请求已接收,继续处理;
2xx: 成功:代表请求已成功被服务器接收、理解、并接受;
3xx: 重定向:要完成请求必须要进行更进一步的操作;
4xx: 客户端错误:请求有语法错误或请求无法实现;
5xx: 服务器错误:服务器未能实现合法的请求。
200: 请求被正常处理;
204: 请求被受理但是没有资源返回;
206: 客户端只是请求资源的一部分,服务器只对请求的部分资源执行了GET操作,相应报文中通过Content-Range来指定资源的范围;
301: 永久性重定向;
302: 临时重定向;
303: 与302功能相似,只是它希望客户端在请求URI的时候可以通过GET方法重定向到另一个URI上;
304: 发送附带条件的请求时,条件不满足时返回,与重定向无关;
307: 临时重定向,与302相似,只是强制使用POST方法;
400: 请求报文有语法错误,服务器无法识别;
401: 请求需要认证;
403: 请求对应资源禁止访问;
404: 请求资源无法找到;
500: 服务器内部错误;
403: 服务器正忙。
-
HTTP的缺点与HTTPS:
a、通信使用明文不加密,内容可能被窃听;
b、不验证通信方身份,可能遭到伪装;
c、无法验证报文完整性,可能被篡改;
HTTPS就是HTTP加上加密处理(一般是SSL安全通信线路)+ 认证 + 完整性保护。