Http介绍

2017-02-09  本文已影响0人  掏钱

1、Http的概念

http是tcp/ip协议族中的一个协议,是工作在应用层的。

2、和http协议关系密切的协议tcp和ip协议

ip协议是工作在网络层的

tcp协议是工作在传输层的,提供可靠的字节流服务,tcp能够提供可靠的传输服务是因为采取了三次握手的策略。第一次发送的时候会发送带有SYN标志的包,接收方接收后会回传一个带有SYN/ACK标志的包,发送方收到后然后发送带有ACK标志的包。

3、Http的特点

http永远有一个客户端和一个服务端,客户端发送请求,服务端进行响应,服务端是不能主动发送通知的

http是不能够保存状态的,但是为了能够保存状态,引用了cookie技术

http1.1版本默认是持久性连接,可以同时并行发送多个请求

4、Http返回状态码

200:请求成功,ok,如果你的请求方法是HEAD,那么返回的也只是头部

204:请求成功,但是返回的只有头部,没有主体

206:请求成功,返回主体是你指定范围的内容,range部分

301:永久重定向 302:临时重定向 303:URI已经更新   这几个返回码都需要客户端将PUT换成GET(不是协议要求,而是一般的浏览器是这样做的),删除主体重新请求

307:临时重定向,但是不要求客户端将PUT换成GET

304:请求的资源已经找到,但是并不符合你添加的条件

400:你的请求报文格式有问题

401:请求的用户没有认证或者认证失败了

403:请求的资源被禁止访问,就是说你没有权限

404:无法找到被请求的资源,有的时候服务器拒绝请求不想说明原因时,也这样使用

500:网络或者服务端执行请求发生错误

503:服务端超出负荷或者正在维护

5、Http的报文格式

请求报文

响应报文

6、报文头部(首部)字段信息

报文头部字段由 字段名:字段值  加回车换行构成。其中字段值可以由多个值构成,字段值之间用“,”隔开。

通用头部字段

Cache-Control:这个字段,值是可以多选的。public明确表明其他用户也可以用这个缓存;private与public完全完全相反;no-cache告诉服务器必须从源服务器返回数据;no-cache=Location,如果服务器返回的报文响应中这么设置,那么客户端将不能使用缓存;no-store暗示请求或者响应有机密的信息,这才是真正的不使用缓存;max-age=时间(秒),如果客户端有这个设置,只要缓存存在的时间小于指定的时间,就用缓存的资源,也就是说这里是缓存的一个有效期;no-transform,无论是在请求中还是在响应中,缓存都不能改变报文主体的媒体类型,

Connection:close,服务器想明确断开连接;keep-Alive一直保持连接,就是持久连接,1.1版本都是默认持久连接的

Date: 值是http报文创建的日期和时间,一般的格式为 Tue,03-Jul-12 04:40:59 GMT

Transfer-Encoding:报文主体在传输时采用的编码格式,值有chunked

请求头部字段

Accept:这个字段可通知服务器,客户端能够处理的媒体类型。这个字段的值也是可以多选的。

文本文件- text/html,text/plain, text/css ,application/xhtml+xml,application/xml

图片文件- image/jpeg,image/gif,image/png

视频文件- video/mpeg,video/quicktime

应用程序使用的二进制文件- application/octet-stream,application/zip

Accept-Charset:告知服务器客户端支持的字符集 ,值就是通用的字符集 iso-8859-5,unicode-1-1等

Accept-Encoding: 客户端支持的内容编码,值可以多选。gzip,compress,deflate,identify

Accept-Language:客户端支持的自然语言集,值可以多选。zh-cn,zh;q=0.7,en-us,en;q=0.3 (q指的是优先级,用分号隔开)

Authorization:客户端的认证信息(证书值)

Host:这个字段会告知服务器请求资源所在的的主机名和端口号,这个值就是域名或者IP地址

Proxy-Authorization:认证,与Authorization相同,不同的是,认证行为发生在客户端和代理服务器之间

Range:指定获取部分资源的范围 比如:bytes=5001-10000,表示请求获取5001个字节到10000字节的数据

User-Agent:用于传达浏览器的种类

实体头部字段

Content-Encoding:报文主体内容采用的编码方式,gizp,compress,deflate,identify

Content-Language:报文主体采用的自然语言集

Content-Length:报文主体部分的大小,单位是字节

Content-MD5:MD5值,用于检查报文主体在传输中是否保持完整

Content-Range:针对的是范围请求,告知客户端返回的是哪一部分的内容

Content-Type:实体主体对象的媒体类型

上一篇下一篇

猜你喜欢

热点阅读