这是一份全面& 详细 HTTP知识讲解

目录

前言

目录

1. 储备知识

1.1 计算机网络体系结构

1.2 HTTP 协议通信的基础模型

2. 简介

3. 工作方式

4. HTTP报文详解

4.1 请求报文

4.1.1 报文结构

4.1.2 结构详细介绍

4.1.3 总结

4.2 HTTP响应报文

4.2.1 报文结构

4.2.2 结构详细介绍

组成1:状态行

组成2:响应头

组成3:响应体

4.2.3 响应报文 总结

4.3 总结

5. 额外知识

5.1 HTTP1.1 与 HTTP1.0的区别

5.2 HTTP 与HTTPS的区别

5.3 HTTP处理长连接的方式

6. 总结


 

前言

  • HTTP网络通信协议在任何的开发工作中都非常重要
  • 今天,我将献上一份HTTP的说明指南,希望你们会喜欢

目录

这是一份全面& 详细 HTTP知识讲解_第1张图片

 


1. 储备知识

讲解HTTP协议前,先了解一些基础的计算机网络相关知识

1.1 计算机网络体系结构

  • 定义
    计算机网络的各层 + 其协议的集合

  • 作用
    定义该计算机网络的所能完成的功能

  • 结构介绍
    计算机网络体系结构分为3种:OSI体系结构、TCP / IP体系结构、五层体系结构

  • OSI体系结构:概念清楚 & 理念完整,但复杂 & 不实用
  • TCP / IP体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被广泛应用于局域网 和 广域网
  • 五层体系结构:融合了OSITCP / IP的体系结构,目的是为了学习 & 讲解计算机原理

这是一份全面& 详细 HTTP知识讲解_第2张图片

 

  • TCP / IP的体系结构详细介绍
    由于 TCP / IP体系结构较为广泛,故主要讲解

    这是一份全面& 详细 HTTP知识讲解_第3张图片

     

1.2 HTTP 协议通信的基础模型

  • HTTP协议传输信息的基础:TCP/IP协议模型

    这是一份全面& 详细 HTTP知识讲解_第4张图片

     

     

  • HTTP协议 属于 最高层的应用层


2. 简介

下面,将简单介绍一下 HTTP

这是一份全面& 详细 HTTP知识讲解_第5张图片

 


3. 工作方式

  • HTTP协议采用 请求 / 响应 的工作方式
  • 具体工作流程如下:

这是一份全面& 详细 HTTP知识讲解_第6张图片

 


4. HTTP报文详解

  • HTTP应用层 交互数据的方式 = 报文
  • HTTP的报文分为:请求报文 & 响应报文

分别用于 发送请求 & 响应请求时

  • 下面,将详细介绍这2种报文

4.1 请求报文

4.1.1 报文结构

  • HTTP的请求报文由 请求行、请求头 & 请求体 组成,如下图

这是一份全面& 详细 HTTP知识讲解_第7张图片

 

  • 下面,将详细介绍每个组成部分

4.1.2 结构详细介绍

组成1:请求行--网址、链接

  • 作用
    声明 请求方法 、主机域名、资源路径 & 协议版本

  • 结构
    请求行的组成 = 请求方法 + 请求路径 + 协议版本

注:空格不能省

这是一份全面& 详细 HTTP知识讲解_第8张图片

请求行的组成

  • 组成介绍

这是一份全面& 详细 HTTP知识讲解_第9张图片

 

此处特意说明GET、PSOT方法的区别:

这是一份全面& 详细 HTTP知识讲解_第10张图片

 

  • 示例
    设:请求报文采用GET方法、 URL地址 = http://www.tsinghua.edu.cn/chn/yxsz/index.htm;、HTTP1.1版本

则 请求行是:GET /chn/yxsz/index.htm HTTP/1.1

组成2:请求头

  • 作用:声明 客户端、服务器 / 报文的部分信息
  • 使用方式:采用”header(字段名):value(值)“的方式
  • 常用请求头
    1. 请求和响应报文的通用Header

这是一份全面& 详细 HTTP知识讲解_第11张图片

请求和响应报文的通用Header

2. 常见请求Header

这是一份全面& 详细 HTTP知识讲解_第12张图片

常见请求Header

  • 举例:
    (URL地址:http://www.tsinghua.edu.cn/chn/yxsz/index.htm)
    Host:www.tsinghua.edu.cn (表示主机域名)
    User - Agent:Mozilla/5.0 (表示用户代理是使用Netscape浏览器)

组成3:请求体

  • 作用:存放 需发送给服务器的数据信息

可选部分,如 GET请求就无请求数据

  • 使用方式:共3种

这是一份全面& 详细 HTTP知识讲解_第13张图片

 

至此,关于请求报文的请求行、请求头、请求体 均讲解完毕。

4.1.3 总结

  • 关于 请求报文的总结如下

这是一份全面& 详细 HTTP知识讲解_第14张图片

 

  • 请求报文示例

这是一份全面& 详细 HTTP知识讲解_第15张图片

 

4.2 HTTP响应报文

4.2.1 报文结构

  • HTTP的响应报文包括:状态行、响应头 & 响应体

这是一份全面& 详细 HTTP知识讲解_第16张图片

 

  • 其中,响应头、响应体 与请求报文的请求头、请求体类似
  • 这2种报文最大的不同在于 状态行 & 请求行

下面,将详细介绍每个组成部分

4.2.2 结构详细介绍

组成1:状态行

  • 作用
    声明 协议版本,状态码,状态码描述
  • 组成
    状态行有协议版本、状态码 &状态信息组成

其中,空格不能省

这是一份全面& 详细 HTTP知识讲解_第17张图片

状态行组成

  • 具体介绍

     

    这是一份全面& 详细 HTTP知识讲解_第18张图片

     

  • 状态行 示例
    HTTP/1.1 202 Accepted(接受)、HTTP/1.1 404 Not Found(找不到)

组成2:响应头

  • 作用:声明客户端、服务器 / 报文的部分信息
  • 使用方式:采用”header(字段名):value(值)“的方式
  • 常用请求头
    1. 请求和响应报文的通用Header

这是一份全面& 详细 HTTP知识讲解_第19张图片

请求和响应报文的通用Header

2. 常见响应Header

这是一份全面& 详细 HTTP知识讲解_第20张图片

常见响应Header

组成3:响应体

  • 作用:存放需返回给客户端的数据信息
  • 使用方式:和请求体是一致的,同样分为:任意类型的数据交换格式、键值对形式和分部分形式

这是一份全面& 详细 HTTP知识讲解_第21张图片

 

4.2.3 响应报文 总结

这是一份全面& 详细 HTTP知识讲解_第22张图片

 

4.3 总结

下面,简单总结两种报文结构

 

这是一份全面& 详细 HTTP知识讲解_第23张图片

 


 4.4 总结

打开:

https://www.csdn.net/

右键审查元素,点击网络按钮,ctrl+r刷新

这是一份全面& 详细 HTTP知识讲解_第24张图片

 

这是一份全面& 详细 HTTP知识讲解_第25张图片

 

Headers的内容:

response headers的内容:

HTTP/1.1 200
Server: Tengine
Content-Type: image/gif
Content-Length: 43
Connection: close
Access-Control-Allow-Origin: *
Date: Fri, 14 Aug 2020 01:24:35 GMT
x-log-requestid: 5F35E7D33B3DC2AD7CECFBBE

request headers的内容:

GET /logstores/csdn-pc-tracking-pageview/track_ua.gif?APIVersion=0.6.0&cid=10_19029752520-1582875423391-146057&sid=10_1582875423391.984661&pid=www&uid=qq_27009517&did=10_19029752520-1582875423391-146057&dc_sid=2e24442d430ef01a16ae393b72dc4bc9&ref=https%3A%2F%2Fblog.csdn.net%2Fqq_27009517&curl=https%3A%2F%2Fwww.csdn.net%2F&utm=&tos=17&adb=0&cCookie=c_session_id%3D10_1582875423391.984661%3Bc_sid%3D2e24442d430ef01a16ae393b72dc4bc9%3Bc_first_ref%3Ddefault%3Bc_first_page%3Dhttps%253A%2F%2Fwww.csdn.net%2F%3Bc_segment%3D9%3Bc_mod%3Dpopu_789%3Bc_page_id%3Dhttps%253A%2F%2Fi.csdn.net%2F%2523%2Fmsg%2Flike%3Bc_ref%3Dhttps%253A%2F%2Fblog.csdn.net%2Fqq_27009517%3B&t=1597368275&screen=1366*768&un=qq_27009517&vType=U000000 HTTP/1.1
Host: event.csdn.net
Connection: keep-alive
Accept: */*
Origin: https://www.csdn.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Content-Type: text/plain;charset=UTF-8
Sec-Fetch-Site: same-site
Sec-Fetch-Mode: cors
Referer: https://www.csdn.net/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9

 

 

5. 额外知识

下面将讲解一些关于HTTP的额外知识:

  • HTTP1.1HTTP1.0 的区别
  • HTTPHTTPS的区别
  • HTTP 处理长连接的方式

5.1 HTTP1.1 与 HTTP1.0的区别

Http1.1Http1.0 多了以下优点:

  • 引入持久连接,即 在同一个TCP的连接中可传送多个HTTP请求 & 响应
  • 多个请求 & 响应可同时进行、可重叠
  • 引入更加多的请求头 & 响应头

如 与身份认证、状态管理 & Cache缓存等机制相关的、HTTP1.0host字段

5.2 HTTP 与HTTPS的区别

这是一份全面& 详细 HTTP知识讲解_第26张图片

示意图

5.3 HTTP处理长连接的方式

这是一份全面& 详细 HTTP知识讲解_第27张图片

 


6. 总结

  • 本文全面总结了HTTP的基础知识
  • 接下来我会介绍继续Android开发中的相关知识,感兴趣的同学可以继续关注本人运营的Wechat Public Account
  • 我想给你们介绍一个与众不同的Android微信公众号(福利回赠)
  • 我想邀请您和我一起写Android(福利回赠)



作者:Carson_Ho
链接:https://www.jianshu.com/p/a6d086a3997d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(computer,network,os,organization)