HTTP协议简介:
Hyper Text Transfer Protocol 也就是超文本传输协议,目前是使用标准化协议1.1版本,属于应用层的协议,所以还要经过物理层TCP/IP才能够进行真实的传输。HTTP协议是更加关注内容本身的协议,默认端口号是80。
HTTP协议传输的特点:
1、传输明文内容,安全性比较差;
2、HTTP协议是一种无状态的协议;
在HTTP协议的基础上,我们可以使用HTTPS这种比较安全的协议,它在传输的过程中是加密的;在传输Webservice中我们使用的比较多的SOAP协议,它也是基于HTTP协议进行传输的。
HTTP协议的构成:
主要是包括请求和响应两大部分,其中请求报文包含:请求行、请求头、请求正文。响应报文包含:响应行(协议+状态码+响应信息)、响应头、响应正文。
HTTP请求:最主要的是GET和POST请求,还有HEAD、OPTIONS、PUT、DELETE、TRACE请求,这些都是一些不常用的请求。
GET请求简单来说就是获取服务器端的资源。一般获取的是服务器端的一个页面、一张图片、一个静态资源;
POST请求主要是由客户端主动发送数据到服务器端。比方说在我们登录一个页面时,我们需要把我们的用户名和密码发送给服务器进行验证,那么这个过程我们就需要使用post请求来实现;
HEAD请求获取由request-url所标识的资源的响应消息报头;
OPTIONS请求查询服务器的性能,或查询与资源相关的选项和需求;
PUT请求服务器存储一个资源,并且使用request-url作为标识;
DELETE请求服务器删除由request-url所标识的资源;
TRACE请求服务器回送收到的请求消息,主要用于测试或诊断。
HTTP请求报文包含的内容:
请求的第一行:请求的类型和请求的内容;
Accept:客户端能够接收的数据类型;
Referer:跳转前的url;
Accept-Language:客户端优先接收什么语言编码的文档;
User-Agent:客户端浏览器的信息;
Accept-Encoding:客户端所能接收的压缩编码格式,而这里的gzip和deflate则是HTTP中两种主要的压缩;
Host:客户端请求的主机;
Connection:表示发完请求后的状态,Keep-Alive代表保持连接,Close:代表释放连接;
Cookie:保存状态信息。
HTTP响应:响应一般包括协议版本号、状态码、协议的头部、响应的正文。
上面我们已经说了,HTTP协议是一种无状态的协议,但是它可以通过Session和Cookie在服务器和客户端之间传递状态信息。
HTTP-Session:在服务器端记录信息,Session机制的安全性要高一些,但是这些数据直接保存在服务器上会占用服务器的资源,当访问较多时,会影响服务器的性能;
HTTP-Cookie:在客户端记录信息,保存的数据大小有限制,单个cookie不能超过4K,并且Cookie的安全性较差。