面试必问的http-1.2:问题整理

TCP-UDP区别:

TCP,提供面向连接的服务,在传送数据之前必须先建立连接,数据传送完成后要释放连接。因此TCP是一种可靠的的运输服务,但是正因为这样,不可避免的增加了许多的开销,比如确认,流量控制等。对应的应用层的协议主要有 SMTP,TELNET,HTTP,FTP 等。

UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认。虽然UDP不提供可靠交付,但是正是因为这样,省去和很多的开销,使得它的速度比较快,比如一些对实时性要求较高的服务,就常常使用的是UDP。对应的应用层的协议主要有 DNS,TFTP,DHCP,SNMP,NFS 等。

 面试必问的http-1.2:问题整理

 

什么是Http协议无状态协议?怎么解决Http协议无状态协议?

无状态协议对于事务处理没有记忆能力缺少状态意味着如果后续处理需要前面的信息

也就是说,当客户端一次HTTP请求完成以后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是一个”老用户“。

可以使用Cookie来解决无状态的问题,Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是”老用户“。

 

URL-URI

URL:

统一资源定位符(Uniform Resource Locator, URL),又叫做网页地址,是互联网上标准的资源的地址(Address),用于描述一个网络上的资源。

统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议

URI:

URI(Uniform Resource Identifier,统一资源标识符)用于标识某一资源

基本格式为:

   schema://host[:port]/path/[;url-params][?query-string][#anchor]

格式说明

  scheme:指定底层使用的协议(例如:http, https, ftp, mailto,file,telnet)

  host:  HTTP服务器的IP地址或者域名

  port:  HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明。例如http://www.cnblogs.com:8080/

  path:  由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址

  url-params:用于指定特殊参数的可选项

  query-string:可选,用于给动态网页(如使用CGI、ISAPI、PHP、JSP、ASP、ASP.NET等技术制作的网页)传递参数,多个参数用“&”符号隔开,每个参数的名和值用“=”符号隔开。  

  anchor(锚用):于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释