1.HTTP协议简介
1.1客户端与服务器建立连接
客户端与服务器建立链接就是SOCKET连接。因此要指定极其名称、资源名称和端口号,可以通过URL来提供这些信息。
1.2客户向服务器提出请求
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行、请求头部、空行和请求数据四个部分组成,下图给出了请求报文的一般格式
1.请求行
请求行分为三个部分:请求方法、请求地址和协议版本
(1)请求方法
根据HTTP标准,HTTP请求可以使用多种请求方法。HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法;HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法
常用的HTTP请求方法如下表
HTTP方法 |
描述 |
OPTIONS |
返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。 |
GET |
从服务器向客户端发送命名资源 |
PUT |
将来自客户端的数据存储到一个命名的服务器资源中去 |
DELETE |
从服务器中删除命名资源 |
POST |
将客户端数据发送到一个服务器网关应用程序 |
TRACE |
回显服务器收到的请求,主要用于测试或诊断 |
CONNECT |
HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器 |
HEAD |
仅发送命名资源响应中的HTTP头部 |
(2)请求地址
URL(统一资源定位符),对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址
基本URL结构:<协议>://<主机>/<路径>:<端口>
(3)协议版本
格式位:HTTP/主版本号.次版本号,常用的由HTTP/1.0和HTTP/1.
2.请求头部
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分割。
注:请求头部最后会有一个空行,表示请求头部结束,接下俩为请求数据,这一行非常重要,必不可少
常见请求头部如下:
请求头部 |
说明 |
Host |
接受请求的服务器地址,可以是IP:端口号,也可以是域名 |
User-Agent |
有关发出请求的应用程序名称 |
Connection |
指定与连接想关的属性,如Connection,Keep-Alive |
Accept-Charset |
通知服务端可以发送的编码格式 |
Accept-Encoding |
通知服务端可以发送的数据压缩格式 |
Accept-Language |
通知服务端可以发送的语言 |
3.请求数据
可选部分,比如GET请求就没有请求数据
1.3服务器对请求做出应答
HTTP响应也由四个部分组成,分别是:状态行、响应头部、空行以及相应数据组成
1.状态行
状态行由三部分组成,分别为协议版本、状态码、状态码描述
(1)状态码
状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用,总共由以下五种类型
1** |
服务器收到请求,需要请求者继续执行操作 |
2** |
成功,操作被成功接收并处理 |
3** |
重定向,西药进一步的操作以完成请求 |
4** |
客户端错误,请求包含语法错误或无法完成请求 |
5** |
服务器错误,服务器在处理请求的过程中发生了错误 |