zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

http和html

2023-02-18 16:34:38 时间

html和http的区别

  • HTML:为解决"怎样使不同风格的万维网文档,都能在因特网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接”这一问题

  • HTTP:为解决"用什么样的网络协议来实现整个因特网上的万维网文档”这一难题

HTML:

html是超文本传输语言,是用来描述网页的一种语言。

http:超文本传输协议
  • 是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何通信以及通信的数据格式。

  • 传输层使用TCP协议进行可靠的传送,默认使用80端口。

http协议通信过程
  1. 浏览器根据IP地址和端口号与服务器建立连接

  2. 向Web服务器发送请求数据包

  3. Web服务器接收请求数据包后,发送相应的响应数据包

  4. 浏览器接收响应数据后关闭连接

web资源:

一个网页由多个资源(文件)构成,打开一个页面,通常会有多个资源展示出来,但是每个资源都要单独请求。

一次请求对应一次连接,当浏览器再次发请求给服务器时,Web服务器并不知道这就是上次发请求的客户端,这也是HTTP协议的一个特点-无状态协议。
资源类型:
  • 静态资源:服务器端文件和客户端文件一样
文件后缀:.html, .txt, .jpg, .js, .css, .mp3, .avi
  • 动态资源:应用程序,服务端将程序的执行结果返回给客户端
文件后缀:.php, .jsp ,.asp
http连接请求
  • 串行连接:每下载一个资源都要进行三次握手和四次挥手的过程。比如一个网页200个资源就要进行200次连接。(效率低下)

  • 并行连接:同时建立多个tcp连接来下载资源(并发资源消耗大)

  • 持久连接:建立连接之后,每个资源下载的时候都不断开连接。

  • 管道:并行连接和持久连接的综合,建立持久连接后同时下载多个资源。

  • 复用连接:交替传输请求报文,请求和响应报文同时互相发送。

http协议的版本

http/0.9:

  • 1991,原型版本,功能简陋,只有一个命令GET。GET /index.html ,服务器只能回应HTML格式字符
    串,不能回应别的格式

http/1.0

  • 1996年5月,每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建

http/1.1

  • 1997年1月,引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复
    用,并且新增了(put、delete等方法)

HTTP1.0和1.1的问题:

  • HTTP1.x在传输数据时,每次都需要重新建立连接,无疑增加了大量的延迟时间

  • HTTP1.x在传输数据时,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份,无法保证数据的安全性

  • 虽然HTTP1.x支持了keep-alive,来弥补多次创建连接产生的延迟,但是keep-alive使用多了同样会给服务端带来大量的性能压力

HTTPS协议:http协议+ssl
HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的

HTTP2协议

  • http/2.0:2015年,HTTP2.0是SPDY的升级版

  • 特点:延迟降低、请求具有优先级、报文头压缩、加密传

http服务端处理请求的方式

单进程I/O模型:

  • 服务端启动一个进程来处理用户请求,而且一次只处理一个,多个请求被串行响应

多进程I/O模型:

  • 服务端一次启动多个进程来处理用户请求,每个进程响应一个连接请求

复用I/O结构:

  • 服务端启动一个进程来处理用户请求,所有的用户请求都通过一个连接复用器连接。通过优先相应继续处理的请求,实现同时响应N个连接请求

复用的多进程I/O模型:

  • 启动M个进程,每个进程响应N个连接请求,同时接收M*N个请求