您的位置:首页 > 理论基础 > 计算机网络

图解HTTP学习(2):简单的HTTP协议

2016-03-10 21:09 495 查看
1. HTTP协议用于客户端和服务器端之间的通信

规定:请求从客户端发出,服务器端响应请求,即客户端开始建立通信,报文格式如下





(1)请求报文格式;请求方法+请求URI+协议版本+可选的请求首部字段+内容实体

(2)响应报文格式:协议版本+状态吗+解释状态码的原因短语+可选的响应首部字段以及实体主体



2. HTTP是不保存状态的协议

(1)无状态协议,即不做持久化处理,之前的访问信息不予记录,每一次都是新的请求,后为了保持状态引入了cookie技

术。

(2)HTTP请求URI定位资源,如果不是访问特定资源而是对服务器本身发起请求,可以使用*代替URI

3. 告知服务器意图的HTTP方法

(1)GET:当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。如果请求资源是文本,原样返回;如果是CGI,返回执行后的结果

(2)POST:用来传输实体的主体(get也可以但一般不用),主要目的并不是获取响应的主体内容,当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;

(3)PUT:传输文件,类似FTP,由于任何人都可上传,存在安全性问题,一般不用

(4)HEAD:与get一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期和时间等

(5)DELETE:删除文件,与PUT相反的方法,请求URI删除指定的资源,不带验证机制,一般不用需配合使用

(6)OPTIONS:询问支持的方法,用来查询针对请求URI指定的资源支持的方法

(7)TRACE;追踪路径,让web服务器将之前的请求通信返回给客户端的方法,200 ok等,不常用,易引发XST攻击

(8)CONNECT:要求用隧道协议连接代理,与代理服务器通信时建立隧道,主要使用SSL和TLS协议把内容加密后隧道传输

4. 使用方法下达命令

(1)支持的方法列表

1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7OPTIONS允许客户端查看服务器的性能。
8TRACE回显服务器收到的请求,主要用于测试或诊断。
9PATCH实体中包含一个表,表中说明与该URI所表示的原内容的区别。
10MOVE请求服务器将指定的页面移至另一个网络地址
11COPY请求服务器将指定的页面拷贝至另一个网络地址。
12LINK请求服务器建立链接关系。
13UNLINK断开链接关系。
14WRAPPED允许客户端发送经过封装的请求。
15Extension-mothed在不改动协议的前提下,可增加另外的方法。
5. 持久连接节省通信量

(1)HTTP初始版本,连接一次要断开一次,麻烦,后来就改成不是每次的请求都造成无谓的TCP建立连接和断开这些开销

(2)管线化:持久连接使得多数请求以管线化方式发送成为可能,即同时发送多个请求

6. 使用cookie的状态管理

(1)不用每次跳转页面重新登录,在请求和响应报文中写入cookie信息控制客户端状态,请求报文(没有cookie信息的状态)---响应报文(服务器端生成cookie信息)---请求报文(自动发送保存着的cookie信息)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: