首页
学习
活动
专区
工具
TVP
发布

计算机网络基础:这是一份详细HTTP学习指南

前言

关于计算机网络,网络通信协议在任何的开发工作中都非常重要

今天,我将献上一份的学习指南,希望你们会喜欢

目录

1. 储备知识

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

1.1 计算机网络体系结构

定义

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

作用

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

结构介绍

计算机网络体系结构分为3种:体系结构、 / 体系结构、五层体系结构

体系结构:概念清楚 & 理念完整,但复杂 & 不实用

/ 体系结构:含了一系列构成互联网基础的网络协议,是的核心协议 & 被广泛应用于局域网 和 广域网

五层体系结构:融合了 与 / 的体系结构,目的是为了学习 & 讲解计算机原理

/ 的体系结构详细介绍

由于 / 体系结构较为广泛,故主要讲解

1.2 HTTP 协议通信的基础模型

协议传输信息的基础:协议模型

协议 属于 最高层的应用层

2. 简介

下面,将简单介绍一下

3. 工作方式

协议采用请求 / 响应的工作方式

具体工作流程如下:

4. HTTP报文详解

在 应用层 交互数据的方式 = 报文

的报文分为:请求报文 & 响应报文

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

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

4.1 请求报文

4.1.1 报文结构

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

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

4.1.2 结构详细介绍

组成1:请求行

作用

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

结构

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

注:空格不能省

组成介绍

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

示例

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

则 请求行是:

组成2:请求头

作用:声明 客户端、服务器 / 报文的部分信息

使用方式:采用”header(字段名):value(值)“的方式

常用请求头

1. 请求和响应报文的通用Header

2. 常见请求Header

举例:

(URL地址:http://www.tsinghua.edu.cn/chn/yxsz/index.htm)

Host:www.tsinghua.edu.cn (表示主机域名)

User - Agent:Mozilla/5.0 (表示用户代理是使用Netscape浏览器)

组成3:请求体

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

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

使用方式:共3种

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

4.1.3 总结

关于 请求报文的总结如下

请求报文示例

4.2 HTTP响应报文

4.2.1 报文结构

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

其中,响应头、响应体 与请求报文的请求头、请求体类似

这2种报文最大的不同在于 状态行 & 请求行

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

4.2.2 结构详细介绍

组成1:状态行

作用

声明 协议版本,状态码,状态码描述

组成

状态行有协议版本、状态码 &状态信息组成

其中,空格不能省

具体介绍

状态行 示例

(接受)、(找不到)

组成2:响应头

作用:声明客户端、服务器 / 报文的部分信息

使用方式:采用”header(字段名):value(值)“的方式

常用请求头

1. 请求和响应报文的通用Header

2. 常见响应Header

组成3:响应体

作用:存放需返回给客户端的数据信息

使用方式:和请求体是一致的,同样分为:任意类型的数据交换格式、键值对形式和分部分形式

4.2.3 响应报文 总结

4.3 总结

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

5. 额外知识

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

与 的区别

与 的区别

处理长连接的方式

5.1 HTTP1.1 与 HTTP1.0的区别

比 多了以下优点:

引入持久连接,即 在同一个的连接中可传送多个请求 & 响应

多个请求 & 响应可同时进行、可重叠

引入更加多的请求头 & 响应头

如 与身份认证、状态管理 & 缓存等机制相关的、无字段

5.2 HTTP 与HTTPS的区别

5.3 HTTP处理长连接的方式

6. 总结

本文全面总结了HTTP的基础知识,如果觉得我的分享不错,欢迎大家随手点赞、转发。

Java团长

专注于Java干货分享

扫描上方二维码获取更多Java干货

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180903A13W9D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券