HTTP协议

HTTP协议

1.  在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP协议。

2.  HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。绝大多数Web开发都是建立在HTTP协议之上的Web应用。

   HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:

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

   host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出

3.  HTTP协议的请求:

   HTTP协议

   请求有三部分组成:请求行、消息报头、请求正文。

   请求行组成:请求方法+统一资源标识符+HTTP协议版本(Method + Request-URI + HTTP-Version)

   一般请求方法有:GET     请求获取Request-URI所标识的资源;POST    在Request-URI所标识的资源后附加新的数据。

   HTTP的八种请求方式:

   1.GET     请求获取Request-URI所标识的资源

   2.POST    在Request-URI所标识的资源后附加新的数据

   3.HEAD    请求获取由Request-URI所标识的资源的响应消息报头

   4.PUT     请求服务器存储一个资源,并用Request-URI作为其标识

   5.DELETE  请求服务器删除Request-URI所标识的资源

   6.TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断

   7.CONNECT 保留将来使用

   8.OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

4.  HTTP协议的响应:

   HTTP协议

   服务器向浏览器返回HTTP响应,响应包括:

   响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;

   响应类型:由Content-Type指定 以及其他相关的Header;通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中。

   一些常见的状态码:200 OK      //客户端请求成功;400 Bad Request  //客户端请求有语法错误,不能被服务器所理解;401 Unauthorized //请求未经授权;

   403 Forbidden  //服务器收到请求,但是拒绝提供服;404 Not Found  //请求资源不存在;500 Internal Server Error //服务器发生不可预期的错误;

   503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

    注意一下:Body的数据类型由Content-Type头来确定,如果是网页,Body就是文本,如果是图片,Body就是图片的二进制数据。浏览器就是依靠Content-Type来判断响应的内容是网页还是图片,是视频还是音乐。浏览器并不靠URL来判断响应的内容,所以,即使URL是http://example.com/abc.jpg,它也不一定就是图片。

5.  HTTP和HTTPS

   1.HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

   2.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

   3.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

   4.HTTPS的工作流程

   HTTP协议