HTTP协议
Hyper Text transfer Protocol(超文本传输协议),用于万维网服务器传输超文本到本地浏览器的传送协议。HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80。HTTP是基于请求与响应模式的、无状态的、应用层的协议
完整的HTTP协议包含请求和响应俩块内容
1、HTTP请求报文
http请求报文主要由请求行、请求头、空一行、请求正文4部分组成。
(1)请求方法(Request Method)——使用什么方式来处理这次请求。
常用的四种请求方式
1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。
就像前面所讲的一样,既然PUT和POST操作都是向服务器端发送数据的,那么两者有什么区别呢。。。POST主要作用在一个集合资源之上的(url),而PUT主要作用在一个具体资源之上的(url/xxx),通俗一下讲就是,如URL可以在客户端确定,那么可使用PUT,否则用POST。
综上所述,我们可理解为以下:
1、POST /url 创建
2、DELETE /url/xxx 删除
3、PUT /url/xxx 更新
4、GET /url/xxx
查看 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是统一资源定位符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
不常用的请求方式:
Head:获取响应头
OPTIONS:允许客户端查看服务器的性能
TRACE:回显服务器收到的请求,用于测试或诊断
connect:connect的作用就是将服务器作为代理,让服务器代替用户去访问其他网页(说白了,就是翻墙),之后将数据返回给用户。
(2)URL(Uniform Resource Locator):统一资源定位符——用于表述网上的资源
格式:schema://host[:port#]/path/.../[?query-string]
·scheme:协议,如http、https、ftp等
·host:域名或者IP地址
·port:端口
·path:资源路径
·query-string:发送的参数
例:https://www.baidu.com/s?wd=西安欧亚学院
(3)请求头(Request Header)
其中 Accept、Authorization、Cookie、Content-Tpye比较重要
2、HTTP响应报文
HTTP响应报文主要由状态行、信息报头、空一行、响应正文4部分组成