HTTP协议简介1

概念html

 HTTP协议:超文本传输协议,用于服务端传输超文本到客户端的传输协议。是一个应用层协议。web

 

工做流程浏览器

一次http请求就是一个事务。过程可分为四步:缓存

1.客户端与服务器创建连接。页面上单击某个连接,http开始创建连接。安全

2.创建连接后,客户端向服务器发送请求,请求的内容有:统一资源定位符(url),协议的名称,MIME类型(请求超文本的类型,好比图片,文字,视频等)。服务器

3.服务器收到请求后给出响应。并返回响应信息,带上状态码。cookie

4.客户端浏览器收到响应信息后显示出来,此时用户能够看到浏览器上展现的内容。此时http请求完成,断开链接。网络

若是想再次得到服务器响应信息,必须客户端从新发送请求。并且客户端每次发送的请求都是独立的,相互间没有任何关系,因此HTTP请求也是无状态的。app

请求过程当中若是出现错误,服务器则会返回相应的错误状态码信息给客户端,比较常见的是404,表示文件没有请求到。编码

总结就是:一个http请求的过程就是客户端发起请求,服务器响应请求并快速给出响应内容。

 

URL

URL:统一资源定位符,指网页地址,经过这个资源地址能够访问具体某个页面。

格式:

  协议地址:http://或https://(加密的协议)

  主机地址:10.240.110.23:80主机IP地址(加端口号),一把都是用域名来表示,经过DNS解析域名到指定的IP地址,好比www.baidu.com

     主机资源的具体地址:/app 斜线后面的地址,指具体的目录或文件名

例如,一个完整的URL为: htttp://www.baidu.com/app  前两部分是必须有的

 

TCP协议-三次握手

HTTP协议一般承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了咱们常说的HTTPS。以下图所示:

 

创建HTTP连接时,需创建TCP/IP连接,TCP连接必须通过三次握手的过程。

第一次握手:SYN(synchronous)是TIPC/IP创建连接时的握手信号,当客户端与服务器创建连接时,客户端发送SYN信息包给服务器,并进入SYN_SEND状态,等待服务器确认。

第二次握手:服务器收到SYN包以后,进行确认,而且本身也发送一个SYN包,也就是回传SYN+ACK包给客户端,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器发过来的SYN+ACK包,向服务器再次发送确认包ACK,此包发送完毕后,客户端和服务器端创建连接状态,而且开始传输数据。

 

 HTTP的请求头信息

 客户端浏览器发送请求给服务器的时候,浏览器在请求头里附加的一些信息。规范以下:

 

General一栏包括:

  Remote Addresss:要请求的远程主机地址

  Request URL:要请求的域名

  Request Method:http请求的方式,HTTP1.1目前支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。比较常见的是POST和GET方式。

    GET:请求获取相应URL的资源,参数会添加在URL的后面

    POST:在请求的资源后附加新的数据,把新的数据封装起来,一块儿传给服务器端

  Status Code:请求的状态码,200表示请求成功。

 

Request Headers一栏包括:

  Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8,浏览器支持的MIME类型,也就是浏览器支持的媒体类型或内容类型。大类/小类,text类型表示文本类型;text/html表示html文档;application/xhtml+xml表现xhtml文档,application/xml表示xml文档。image表示图片信息。另外还包括其余多媒体信息。

  Accept-Encoding:gzip, deflate, sdch,表示浏览器有能力解码的编码类型。这里浏览器支持的压缩编码是gzip,deflate,sdch;

  Accept-Language:zh-CN,zh;q=0.8,浏览器所支持的语言类型。zh-CN表示简体中文,q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于得到其“;”以前的类型表示的内容,若没有指定 q 值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型。

  Accept-Charset:GB2312,utf-8,告诉服务器,浏览器支持的编码类型

  Connection:keep-alive表示客户端与服务器的连接类型。keep-alive表示持久链接。

  Cookie:指浏览器所设置的cookie信息。从这里浏览器能够附带一些数据给服务器。

  Host:表示请求的服务网址

  UserAgent:用户代理,一个特殊的字符串,使得服务器可以识别客户端使用的操做系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

  If-Modified-Since:浏览器告诉服务器,数据须要缓存的时间

  Referer:浏览器告诉服务器,是从哪一个页面过来的(放盗链)

 

HTTP响应头信息  

Response Headers指客户端发送请求头信息后,服务器作出应答,并返回过来的描述信息,也就是响应头信息。下面介绍比较常见的:

  Server:指服务器的类型

  Content-Encoding:gzip,服务器返回的数据所采用的压缩格式

  Content-Type:text/html;charset=utf-8;指服务器返回数据的编码格式

  Connection: keep-alive,表示服务器与客户端的连接类型。keep-alive表示持久连接

  Cache-Control:public,private,no-cache,no- store,no-transform,must-revalidate,proxy-revalidate,max-age指服务器返回的数据所遵循的缓存机制。public表示响应数据可被任何缓存区缓存;private指部分响应信息不能被共享缓存处理;no-cache表示请求或响应不能被缓存;no-store指响应数据不能被缓存。

  Date:指请求所发送的时间。时间表示的是世界标准时间。

  Expires:返回数据的过时时间

  Last-Modified:与请求头里的If-Modified-Since结合使用。客户端经过设置请求头里的If-Modified-Since提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,不然返回一个304(Not Modified)状态。Last-Modified也可setDateHeader方法来设置。

 

HTTP请求除了返回响应头信息以外,还返回响应码来表示返回状态,常见的状态码以下:

  200 OK:表示客户端请求成功,服务端成功的返回响应信息

  400 Bad Request:客户端的请求有语法错误,服务器不能正常解析

  401 Unauthorized:请求未经受权,这个状态码须要和WWW-Authenticate抱头域一块儿使用

  403 Forbidden:服务器已经收到请求,可是拒绝响应

  404 Not Found:请求资源不存在,好比错误的请求地址

  500 Internal Server Error:服务器发生错误

  503 Server Unavailable: 服务器当前状态不能处理客户端的请求,可能过段时间会恢复正常

 

 

HTTP协议的特色

1.支持客户端/服务器模式。

2.简单快速:只需提供请求地址和请求方式。请求方式包括POST,GET等方式。

3.灵活:请求数据多样性。好比html,xhtml,text,以及其余的多媒体资源。

4.无链接:当客户端发起请求后,服务器给出回应,返回响应数据,即表示链接已经结束。

5.无状态:http的每次请求都是独立的,互相不影响。若是想要再获取请求数据,必须客户端再次发送请求。

 

OSI七层协议

 OSI把网络的通讯划分红七层。http是属于应用层的协议。

  

应用层 (Application): 网络服务与最终用户的一个接口。协议有:HTTP FTP TFTP SMTP SNMP DNS
表示层(Presentation Layer):数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
会话层(Session Layer):创建、管理、终止会话。(在五层模型里面已经合并到了应用层)
传输层 (Transport):定义传输数据的协议端口号,以及流控和差错效验。 协议有:TCP UDP
网络层 (Network):进行逻辑地址寻址,实现不一样网络之间的路径选择。协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
数据链路层 (Link):创建逻辑链接、进行硬件地址寻址、差错效验等功能。(由底层网络定义协议)
物理层(Physical Layer):创建、维护、断开物理链接。(由底层网络定义协议)

如今已使用五层的TCP/IP协议

TCP负责发现传输的问题,一有问题就发出信号,要求从新传输,直到全部数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。模型以下:

 

 

参考地址:http://www.imooc.com/learn/304

http://www.360doc.com/content/10/0930/17/3668821_57590979.shtml

http://jingyan.baidu.com/article/375c8e19770f0e25f2a22900.html

相关文章
相关标签/搜索