IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 图解http -> 正文阅读

[网络协议]图解http

第一章——了解web及网络基础

1.1 使用HTTP协议访问Web

在浏览器的地址栏输入URL时,可以看到web页面,即使你不了解其运作原理,也能看到web页面。

?发送请求获取服务器资源的web浏览器,称之为客户端。

?web使用一种名为HTTP(超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程。

1.2 HTTP的诞生

1.2.1 为知识共享而规划web

WWW: 万维网world wide web

HTML:超文本标记语言hypertext markup language

URL :统一资源定位符uniform resource locator?

SGML:标准通用标记语言 standard generalized markup language

1.2.2 web 成长时代

1.2.3 驻足不前的HTTP

HTTP/0.9? ?HTTP/1.0? HTTP/1.1

1.3 网络基础TCP/IP

1.3.1 TCP/IP协议族

协议(Protocol):不同的硬件,操作系统之间的通信,所用的这一切都需要一种规则,这种规则称为协议。

?与互联网相关联的协议集合起来总称为TCP/IP。

1.3.2 TCP/IP的分层管理

TCP/IP协议族里最重要的一点就是分层。

TCP/IP分为四层:应用层、传输层、网络层、数据链路层

应用层:向用户提供应用服务时通信的活动。

HTTP协议就在这一层。

传输层:提供处于网络连接中的两台计算机之间的数据传输。

这一层的协议有: TCP(Transmission Control Protocol,传输控制协议)、UDP(User Data Protocol,用户数据报协议),DNS(Domain name system域名系统)

网络层:IP协议在这一层。

用来处理在网络层上流动的数据包。数据包是网络传输的最小数据单位。

数据链路层:用来处理网络的硬件部分。物理设备

1.3.3 ——TCP/IP通信传输流

?利用TCP/IP进行网络通信时,会通过分层顺序与对方进行通信。

发送端(客户端):从应用层往下走,

接收端(服务器):从应用层往上走。

接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

?封装:把数据信息包装起来的做法称为封装

1.4 与HTTP关系密切的协议:IP、 TCP和DNS

1.4.1 负责传输的IP协议

IP位于网络层,所有使用网络的系统都会用到IP协议。

IP和IP地址:
IP其实是一种协议的名称。

IP协议:就是把数据包传送给对方,而要保证确实传送到对方那里,两个重要的条件是IP地址和MAC(媒体访问控制地址)。

IP地址:指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会改变。

利用ARP(地址解析协议address resolution protocol)协议凭借MAC地址进行通信

IP间的通信依赖MAC地址。

ARP协议是一种解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。

在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获得很粗略的传输路线。

这种机制称为路由选择。

无论那台计算机,那台网络设备,他们都无法掌握互联网中的细节。

?1.4.2 确保可靠性的TCP协议

按层次分,TCP位于传输层,提供可靠的字节流服务(byte stream service)。

字节流服务:为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。

可靠的传输服务是把数据准确可靠地传给对方。

TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。

确保数据能到达目标(TCP协议的三次握手three-way handshaking)

用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,一定会向对方确认是否成功送达。

握手过程中使用了TCP的标志—— SYN(synchronize异步)和ACK(确认acknowledgement)?

1.? 首先,发送端会发送给接收端一个带有SYN标志的数据包

2.然后,接收端收到来自发送端发送的SYN标志后,会发送给发送端带有SYN/ACK标志的数据包

3.最后,发送端确认接收端已经收到了,会发送给接收端带有ACK标志的数据包。

?1.5 负责域名解析的DNS(domain name system)服务

DNS是和HTTP协议位于同一层的协议。

它提供了域名到IP地址之间的解析服务。

用户经常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。

计算机既可以被赋予IP地址,也可以被赋予主机名和域名。

DNS协议通过域名查找IP地址,或者逆向从IP地址反查域名的服务。

1.6 各种协议与HTTP协议的关系?

?

1.7 URI和URL?

URI(Uniform Resource Identifier统一资源标识符)和URL(Uniform Resource Locator统一资源定位符)。其实相比于前者我们更熟悉后者。

1.7.1 URI(了解)

?URL是URI的子集。

统一资源标识符(URI)通用语法”中列举了几种 URI 例 子,如下所示。

ftp://ftp.is.co.za/rfc/rfc1808.txt 
http://www.ietf.org/rfc/rfc2396.txt 
ldap://[2001:db8::7]/c=GB?objectClass?one 
mailto:John.Doe@example.com 
news:comp.infosystems.www.servers.unix 
tel:+1-816-555-1212
telnet://192.0.2.16:80/ 
urn:oasis:names:specification:docbook:dtd:xml:4.1.2

1.7.2 URI格式


?第二章 简单的HTTP协议

2.1 HTTP协议用于客户端和服务器端之间的通信

客户端: 请求访问文本或图像等资源的一端

服务器端:提供资源相应的一端

2.2 通过请求和响应的交换达成通信?

????????

?

HTTP协议规定,请求从客户端发出,最后服务器端响应应该请求并返回。

客户端发送给某个http服务器端的请求报文中的内容。?

请求报文的构成:请求的方法、请求的URI、协议版本、可选的请求首部字段和内容实体构成。?

?

?

?

HTTP/1.1 200 OK
Date: Tue, 10 Jul 2012 06:50:15 GMT Content-Length: 362
Content-Type: text/html
<html> ......

HTTP/1.1 表示服务器对应的HTTP版本。

200 OK 表示请求处理的状态码(status code)和原因短语。

下面的几行表示创建响应的日期时间,

?

响应报文由:协议版本、状态码、原因短语、响应首部字段、主体组成。

2.3 HTTP是不保存状态的协议 (无状态协议stateless)

?

?使用HTTP协议,每当发送新的请求时,就会有新的响应产生。?

HTTP协议本身不具有保留之前请求或响应报文的信息。这样可以更快的处理大量的事务。

但是在后面的实际需求中会发现,我们需要保留自己曾经登录过的信息,这就出现了cookie技术。

cookie可以管理状态,可以实现保持的登录状态。

2.4 请求 URI定位资源

?

2.5 告知服务器意图的HTTP方法?

?GET:获取资源

GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端1解析后返回响应内容。

如果访问的是文本,那就保持原样返回;

如果是CGI(commom getway interface),那就返回执行后的输出结果。

?

?

POST :传输实体主体

POST方法用来传输实体的主体。

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:14:36  更:2022-08-06 11:15:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:13:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码