1. 什么是HTTP协议?

  简介

  1. HTTP是HyperText Transfer Protocol(超文本传输协议),互联网应用最为广泛的网络协议,所有www文件都必须遵守HTTP协议
  2. HTTP协议最初的目的是提供发布和接收HTML页面的方法
  3. HTTP协议是应用层、面向对象的协议,是Web联网的基础,也是手机联网的常用协议之一
  4. HTTP协议是浏览器客户端服务器端之间数据传输的格式规范

  特点

  1. 支持B/S(浏览器/服务器端)及C/S(客户端/服务器端)模式
  2. 简单快速,客户端向服务器端请求服务时,只需要传输请求方法和路径
  3. 灵活,允许传输任意类型的对象
  4. 无状态协议,对事物处理没有记忆能力
  5. 客户端每发送一次请求都需要服务器回送响应,在请求结束后,回主动释放连接,建立连接到关闭连接的过程称为“一次连接”,HTTP连接使用的是“请求——响应”的方式

2. HTTP的工作方式

【从零到一】Android网络编程(二)| (HTTP协议)
  HTTP1.1增加了持久连接的支持


3. 统一资源定位符——URL

  学习URL之前,让我们了解一下 URI(统一资源标识符)

URI用来唯一地标识一个资源,可以标识任何类型的资源(本地系统资源、局域网资源、互联网资源),web上的可用的每种资源(如HTML文档、图像、视频、程序)都可以用一个URI来定位。

  URL是 统一资源定位符,只能定义网络资源,所以属于 URI的子类 。具体结构如下图:
  【从零到一】Android网络编程(二)| (HTTP协议)

  • http: : 表示网页使用的是HTTP协议
  • host(主机名/域名):可以使用本地域名(如127.0.0.1),也可使用网络域名(如www.baidu.com
  • :port(端口号) :非必须,默认端口号为80
  • path(路径):非必须,包括虚拟目录,文件名,参数部分和锚部分

4. 请求信息——Request

  知道了HTTP协议是浏览器客户端服务器端之间数据传输的格式规范,但是这个规范中具体包含什么内容呢?我们要怎么查看这部分内容呢?我们可以通过软件将通讯的过程拦截下来,就可以查看到具体传递的信息了。浏览器客户端向服务器发送的数据,我们称为HTTP的请求信息——Request
  我们在浏览器中输入网址后回车,这个操作就是浏览器客户端向服务器端发送请求信息。为了查看整个通讯的过程,在拦截时直接右键页面,点击检查。
【从零到一】Android网络编程(二)| (HTTP协议)
  找到Network栏后,再在地址栏回车,就可以在Network栏中看到浏览器向服务器端发送的多个请求。请求数据包括请求行请求头请求数据/实体内容
【从零到一】Android网络编程(二)| (HTTP协议)

 4.1 HTTP请求信息的组成

  1. 请求行:包括请求方式(有8种)、请求资源(URI)和协议版本,格式如下:
    【从零到一】Android网络编程(二)| (HTTP协议)
  2. 请求头:(以下信息,根据请求方式的不同而不全都存在)
  • Accept:浏览器接受的数据类型
  • Accept-Charset:浏览器接受的编码格式
  • Accept-Encoding:浏览器接受的数据压缩格式
  • Accept-Language:浏览器接受的语言
  • Host:当前请求访问的目标地址(肯定存在
  • If-Modified-Since:浏览器最后的缓存时间
  • Referer:当前请求来自哪里
  • User-Agent:浏览器的类型
  • Cookie:浏览器保存的cookie数据
  • Connection:浏览器与服务器的连接状态
  • Date:请求发出的时间
  1. 请求数据/实体内容:只有请求方式为POST时,提交的参数才会放到 请求数据/实体内容 中。

5. 响应信息——Response

  服务器接收到客户端发来的请求后,会进行相应的处理,并向客户端输出信息,称为响应信息——Response。包括响应行响应头响应体/实体内容

 5.1 HTTP请求信息的组成

  1. 响应行:包括协议版本、状态码和状态描述
    【从零到一】Android网络编程(二)| (HTTP协议)
    常见的状态码:
  • 1XX:指示信息——表示请求已被接收,据需处理;
  • 2XX:成功——表示请求已被成功接收、理解、接收;
    (200 OK 客户端请求成功)
  • 3XX:重定向——要完成请求必须进行更进一步的操作;
  • 4XX:客户端错误——请求有语法错误或请求无法实现;
    (400 Bad Request 客户端请求有语法错误,不能被服务器所理解,404 Not Found 请求资源不存在)
  • 5XX:服务器错误——服务器未能实现合法的请求;
    (500 Internal Server Error 服务器发生不可预期的错误,503 Server Unavailable 服务器当前不能成立客户端的请求,一段时间后可能恢复正常)
  1. 响应头:(以下信息,根据响应方式的不同而不全都存在)
  • Location:表示重定向的地址
  • Server:表示服务器的类型
  • Content-Encoding:表示服务器发送给浏览器的数据压缩类型
  • Content-Length:表示服务器发送给浏览器的数据长度
  • Content-Language:表示服务器支持的语言
  • Content-Type:表示服务器发送给浏览器的数据类型及内容编码
  • Last-MoModified:表示服务器资源的最后修改时间
  • Refresh:表示定时刷新
  • Content-Disposition:表示告诉浏览器以下载的方式打开资源
  • Connection:浏览器与服务器的连接状态
  1. 响应体/实体内容:服务器端向库互动传输的实际的数据信息,本质是一堆字节流,可表示文本、图片或其他格式的信息。

未完待更。

相关文章:

  • 2021-04-14
  • 2022-12-23
  • 2021-05-28
  • 2021-05-19
  • 2022-12-23
  • 2021-12-27
  • 2021-11-30
猜你喜欢
  • 2021-08-30
  • 2021-10-14
  • 2021-11-25
  • 2021-06-26
  • 2022-12-23
  • 2021-10-03
相关资源
相似解决方案