Http协议理解

 HTTP是hypertext transfer protocal(超文本传输协议)的简写,它是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。HTTP/1.0是早期版本,当前版本是HTTP/1.1,HTTP-NG处于试验阶段,是下一代的HTTP协议。

 在HTTP/1.0中,浏览器与WEB服务器的每次连接只处理一个请求和响应,对每个页面的访问都要建立一次单独的连接。因此在访问多图片网页时,需要建立多个连接,代价较大。

 与HTTP/1.0相比,HTTP/1.1允许在一个TCP连接上传送多个HTTP请求与响应,但每个页面的访问还都要建立一次单独的连接;在HTTP/1.1中,多个请求和响应过程可以重叠进行;增加了更多的请求头和响应头。

 HTTP协议也支持代理服务器。所谓代理服务器,就客户端浏览器请求网页文档时,请求会发送到代理服务器,如果代理服务器缓存有该网页文档,就直接返回响应信息给客户端浏览器,如果没有该文档,就发送请求到目标服务器,获取该文档后,再返回给客户端浏览器。所以代理服务器在有缓存文档的情况下充

当服务器,在没有缓存相应文档的情况下对于目标服务器来说相当于浏览器。

HTTP请求消息的格式:一个请求行、若干消息头以及实体内容,消息头和实体内容是可选的,消息头和实体内容之间要用空行隔开。

HTTP响应消息的格式:一个状态行、若干消息头以及实体内容,消息头和实体内容是可选的,消息头和实 体内容之间要用空行隔开。

请求行的格式:请求方式 资源路径HTTP版本号  如:GET /test.html HTTP/1.1;请求方式有:GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT。

状态行的格式:HTTP版本号状态码 原因叙述  如:HTTP/1.1200 OK;其中状态码可分为5类,100-199表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程;200-299表示成功接受请求并已经完成整个处理过程;300-399为完成请求,客户需进一步细化请求;400-499客户端的请求有错误;500-599服务器端出现错误。常用的有200(正常)、206(返回的是服务器

的部分内容)、302/307(临时重定向,资源已被移动)、304(未修改,已是当前最新版本)、401(未经授权,页面受口令和密码保护)、404(找不到)、500(内部服务器错误)。

消息头又可分为通用信息头、请求头、响应头、实体头、扩展头。

有关HTTP消息,有以下几点需要注意:

 (1)响应消息的实体内容就是网页文件的内容,也就是在浏览器中使用查看源文件的方式所看到的内容。

 (2)一个使用GET方式的请求消息中不能包含实体内容,只有使用POST、PUT和DELETE方式的请求消息中才可以包含实体内容。

(3)对于HTTP 1.1来说,如果HTTP消息中包括实体内容,且没有采用chunked传输编码方式,那么消息头部分必须包含内容长度的字段,否则,客户和服务程序就无法知道实体内容何时结束。

(4)在HTTP协议中,还可以使用简单的请求消息和响应消息,它们都没有消息头部分。简单的请求消息只能用于GET方式,且请求行中不用指定HTTP版本号。对于简单的请求消息,服务器返回简单的响应消息,简单的响应消息中只返回实体内容。

GET与POST请求方式的区别:

(1)GET方式的请求消息中不能包含实体内容,而POST可以。

(2)GET方式可以使用简单的请求消息,而POST不可以。

(3)URL地址后面的参数使用GET传送时,参数直接附加在资源路径后面,因此传送的数据量是有限的,一般限制在1KB以下;使用POST传送时,参数放在实体内容之中,消息头中必须要有字段Content-Type与Content-Length,因此传送的数据量要比GET方式大得多。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值