关于java:面试突击64了解-HTTP-协议吗

46次阅读

共计 1582 个字符,预计需要花费 4 分钟才能阅读完成。

HTTP(Hyper Text Transfer Protocol)超文本传输协定,下文简称 HTTP,它的作用是用于实现服务器端和客户端的数据传输的。它能够传输任意的数据类型,如文本、HTML、图片、文件、声音等类型。
简略来说,HTTP 的作用就像一个“快递”一样,用来承载客户端(浏览器)和服务器端的数据传输,如下图所示:

1.HTTP 特点

HTTP 的次要特点有以下 5 个:

  1. 简略疾速 :客户端向服务器端发送申请时,只需传递申请办法、门路和申请参数,因为协定简略,所以使得 HTTP 服务器的程序规模小,因此通信速度很快。
  2. 无连贯 :所谓的无连贯指的是,每次连贯只解决一个申请。服务器解决完客户的申请后,会立刻断开连接。
  3. 无状态 :HTTP 不会记录每次申请的身份信息,因而前一次申请和后一次申请互相“不意识”。
  4. 可传递任意数据类型 :HTTP 容许传输任意数据类型,只须要在申请头中标识数据类型 Content-Type 即可。
  5. 一对一通信 :每次 HTTP 申请,都是一个客户端对应一个服务器端。

    2.HTTP 组成

    HTTP 是由以下 2 局部组成的:

  6. 申请对象 Request(客户端申请)。
  7. 响应对象 Response(服务器响应)。

每次 HTTP 申请都是由一次申请和一次响应形成的,如下图所示:

2.1 申请对象

申请对象蕴含 4 局部内容:

  1. 申请行
  2. 申请报头
  3. 空行
  4. 申请注释

如下图所示:

2.1.1 申请行

申请行蕴含了以下 3 局部内容:

  1. 申请类型 Method,如 GET。
  2. 申请的 URL 地址,如 https://www.baidu.com。
  3. HTTP 版本号,如 HTTP/1.1。

其中,所有的申请类型如下:

2.1.2 申请报头

申请报头是在发送申请时,形容更多的申请信息的,它以 “name: value” 的模式存在的,每个申请报头占一行。
常见的申请报头有以下几个:

  • Host:示意服务器端的地址和端口号。
  • Content-Type:用于形容申请注释中的数据类型,常见的类型有:json 格局的 application/json、表单格局的 application/x-www-form-urlencoded、文件格式的 multipart/form-data 等。
  • Content-Length:用于形容申请注释中的数据长度,须要留神的是,这里的数据长度统计单位为字节而非字符。
  • User-Agent:用户代理信息,比方拜访用户的零碎信息,浏览器类型和版本信息等。

2.1.3 空行

一个没有任何内容的空行,用于分隔申请报头和申请注释的非凡组成部分。

2.1.4 申请注释

业务零碎中要传递参数。

2.2 响应对象

响应对象也是由 4 局部内容组成的:

  1. 状态行
  2. 响应报头
  3. 空行
  4. 响应注释

如下图所示:

2.2.1 状态行

状态行用于形容服务器的返回状态,它由 3 局部组成:

  1. HTTP 版本号,如 HTTP/1.1。
  2. 状态码,如 200。
  3. 状态形容信息,如 OK。

常见的状态码有以下几个:

  • 200:返回胜利。
  • 301:永恒重定向。
  • 302:长期重定向。
  • 404:未找到页面。
  • 500:服务器程序出错。

2.2.2 响应报头

响应报头和申请报头相似,也是以 “name: value” 的模式存在的,每个报头占一行。
常见的报头有 Content-Type,它是用于形容响应注释的数据类型的,常见的数据类型有:json 格局的 application/json 和 HTML 格局的 text/html。

2.2.3 空行

一个没有任何内容的空行,用于分隔状态行和响应注释的非凡组成部分。

2.2.4 响应注释

返回给客户端的所有数据。

总结

HTTP 超文本传输协定,用于实现服务器端和客户端的数据传输。它的特点是简略疾速、无连贯、无状态、可传递任意数据类型和一对一通信。HTTP 协定由两局部组成:申请对象 Request 和响应对象 Response。

是非审之于己,毁誉听之于人,得失安之于数。

公众号:Java 面试真题解析

面试合集:https://gitee.com/mydb/interview

正文完
 0