HTTP学习笔记

HTTP是一个基于“请求/响应”模式的、无状态的协议。所谓的“请求/响应”模式,即客户端(浏览器)向服务端(Web服务器)发起连接,在连接建立后,客户端再向服务端发送一个请求;服务端对这个请求进行处理,然后返回一个响应信息,之后关闭双方的连接。在OSI(开放式系统互连)参考模型中,HTTP位于应用层,它需要下层协议的提供的服务,一般来说是TCP协议。不过实际上,HTTP只假定所使用的协议提供的数据传输是可靠的,因此任一满足要求的协议都可以被使用。

早先的HTTP1.0采用的是单次连接机制,即浏览器发送一个请求后,服务器回应一个消息,之后连接就被关闭。若浏览再次发出请求,则需重新建立连接。这就容易导致Internet上的信息堵塞。而后的HTTP1.1给出了一个持续连接的默认机制,缓解了这一问题。

所谓网址,就是HTTPURL,其格式如下:

http://host[:port][abs_path]

http表示指定HTTP协议来定位网络资源。host表示合法的Internet主机域名或IP地址。port用于指定端口号——若未给出端口,则默认使用端口80。abs_path指定被请求资源的URI(统一资源标识符)——若未给出URL,则默认为“/”的形式。

注:URL是一种特殊形式的URI。此外URN(统一资源命名)也是一种URI。

HTTP请求由三部分组成分别是:请求行、消息报头、请求正文。

请求行由请求方法、资源URI、协议版本组成,其格式如下:

Method Request-URI HTTP-version (CRLF)

注:方法名是区分大小写的;目前HTTP支持的方法都是大写格式的。

消息报头与请求正文之间隔着一个空行,代表消息报头已经结束,接下来是请求正文。

HTTP响应与请求类似,也由三部分组成,分别是:状态行、消息报头、响应正文。

状态行由协议版本、状态代码(数字形式)、状态描述(文本描述)组成,其格式如下:

HTTP-version Status-Code Reason-Phrase (CRLF)

状态代码有三位数字组成,表示请求是否被理解或被满足,首位取值如下:

消息报头与响应正文之间隔着一个空行,代表消息报头已经结束,接下来是响应正文。

消息报头的格式如下:

name: value (CRLF)

报头一般分为普通报头、请求报头、响应报头、实体报头等。报头域是不分大小写的。

普通报头中有的能应用于所有的请求消息和响应消息。普通报头域有:

以下重点介绍几个普通报头域的使用方法:

1.      Cache-Control:指定缓存指令,从而覆盖默认的缓存规则。请求消息和响应消息所使用的缓存指令是不同的。

2.      Date:表示消息产生的日期和时间。请求和响应的消息中都可以应用。作为服务端应该总是包含Date报头域的;而作为客户端只有在发送的消息中包含了正文时,才应发送Date报头域。

3.      Connection:指定连接的方式是持续的或是单次的。

请求报头允许客户端向服务端传递该请求的附加信息,以及客户端自身的信息。请求报头域有:

以下重点介绍几个请求报头域的使用方法:

1.      Accept:用于指定客户端接受哪种格式的信息,取值通常为文件后缀名。

2.      Accept-Charset:用于指定客户端接受哪种字符集。

3.      Accept-Encoding:用于指定客户端接受哪种内容编码。

4.      Accept-Language:用于指定客户端接受哪种自然语言。

5.      Authorization:用于证明客户端拥有访问被请求资源的权限。

6.      Host:指定被请求资源的Internet主机号和端口号。对于HTTP请求来说,这个报头域是必须的!

7.      User-Agent:提供客户端的系统及软件信息。

响应报头允许服务器传递不能放在状态栏中的附加响应信息,以及关于服务器的信息和对被请求资源进行下一步访问的信息。响应报头域有:

以下重点介绍几个响应报头域的使用方法:

1.      Location:用于将接受者重定向到新的位置。

2.      Server:与User-Agent相对应,提供服务器的软件信息。

3.      WWW-Authenticate:必须被包含到401(未授权的)相应信息中。

实体报头可以传送信息实体,如请求正文和响应正文。包括实体报头域和实体正文两部分。其中实体正文就是请求正文和响应正文。实体报头域有:

以下重点介绍几个实体报头域的使用方法:

1.      Content-Encoding:指示实体正文的内容编码。

2.      Content-Language:指示资源所用的自然语言。

3.      Content-Length:指示实体正文的长度。

4.      Content-Type:指示实体正文的媒体类型。

5.      Expires:给出了实体过期的日期和时间

6.      Last-Modified:指示资源最后的修改日期和时间。

总之,HTTP消息由从客户端到服务端的请求和从服务端到客户端的响应组成。请求消息和响应消息都是有开始行、消息报头、空行、消息正文组成的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值