ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
http协议诞生于20世纪80年代末90年代初,欧洲量子实验室,用于共享文档。 ### http协议的发展和http方法 HTTP:HyperText Transfer Protocol 超文本传输协议; 超文本:带有超链接的文本,可以在文档间跳转。 #### http/0.9 GET(从远程获取文件到本地予以展示),仅支持纯文本(超链接) HTML:HyperText Mark Language:超文本标记语言 #### http/1.0 PUT(从远程获取文件到本地),POST(提交到远程服务器),DELETE 引入MIME,多媒体资源发展; **增加缓存**功能 #### http/1.1 **增强缓存**的功能; 长连接,第二次请求较迅速,显著提高服务器响应能力;但也会影响后面访问的用户; >[info] 正常情况下,请求网页含有多个资源,各个资源的请求是分开发起的,所以一个网页的请求可能含有多次“三次握手和四次断开”;引入长连接之后,获取资源以后并连接不是马上断开,等待获取第二个资源。 这样也可能带来问题,长连接之后,若一直不断开,并发量很大时,会有大量请求被堵塞; 使用空闲超时时间和请求次数进行限制; ### http报文 ![](http://om4h63cja.bkt.clouddn.com/17-6-12/44813424.jpg) 报文的第一行通常称作报文“起始行(start line)”;后面的标签格式的内容称作首部域(Header field),每个首部域都由名称(name)和值(value)组成,中间用逗号分隔。另外,响应报文通常还有一个称作Body的信息主体,即响应给客户端的内容。 #### 请求报文语法格式 ~~~ <method> <request-URL> <version> 请求方法 请求资源 协议版本 <headers> 协议首部 必须的空白行 <entity-body> 报文主体 ~~~ #### 请求报文举例 ~~~ GET / HTTP/1.1 访问默认页面,主页 Host: www.magedu.com Connection: keep-alive ~~~ #### 响应报文语法格式 ~~~ <version> <status> <reason-phrase> 协议版本 状态代码 解释状态代码 <headers> 协议首部 <entity-body> ~~~ #### 响应报文举例 ~~~ HTTP/1.1 200 OK X-Powered-By: PHP/5.2.17 Vary: Accept-Encoding,Cookie,User-Agent Cache-Control: max-age=3, must-revalidate Content-Encoding: gzip Content-Length: 6931 ~~~ ![](http://om4h63cja.bkt.clouddn.com/17-6-12/48358283.jpg) ### URI和URL资源标识 仅靠文件名标记不同文档具有局限性,因此URI诞生。 * URI:Uniform Resourse Indentifier,统一资源标识符(路径格式上统一) * URL:Uniform Resourse Locator,统一资源定位符,是URI的子集,描述在互联网上资源的标识 --- ### 邮件传输协议的发展 SMTP Simple Mail Transmission Protocol,纯文本 MIME Multipurpose Ineternet Mail Extension,多用途互联网邮件扩展 将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够调用相应的程序来打开此文件。 ### 动态效果和动态网页的不同概念 #### 动态效果 Flash开发语言,在客户端使用flash插件执行,较轻量级 Java(Applet),在客户端的JRE环境运行,较重量级,较少使用 #### 动态网页 服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本接受参数之后在服务器运行一次,运行完成之后会生成HTML格式的文档,把生成的html文档发给客户端;根据客户端的请求生成。(参数:请求内容/浏览器类型/用户) 动态网页包含静态内容和动态内容,动态内容部分才需运行。 ![](http://om4h63cja.bkt.clouddn.com/17-6-12/82424260.jpg)