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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【计算机网络】简析浏览器的URL、URI以及HTTP请求消息 -> 正文阅读

[网络协议]【计算机网络】简析浏览器的URL、URI以及HTTP请求消息

1.简要介绍

URL:Uniform Resource Locator,统一资源定位符
URI:Uniform Resource Identifier,统一资源标识符

2.URL

URL,也就是我们平常所说的“网址”。我们通常使用浏览器去访问web服务器就是从输入网址开始的。但是实际上浏览器不止有这个功能,它还可以在FTP服务器上下载和上传文件,可以具有电子邮件客户端的功能……总的来说,浏览器是一个具有各种不同的客户端软件,而我们区分功能就需要用到不同的url。
下面列举4种浏览器url:

http://user:passerword@www.xxxxx.com:80/dir/file1.htm
访问方法://用户名(可省):密码(可省)@Web服务器域名:端口号(可省)/文件的路径名
ftp://user:passerword@ftp.xxxxx.com:21/dir/file1.htm
访问方法://用户名(可省):密码(可省)@FTP服务器域名:端口号(可省)/文件的路径名
file://localhost/c:/path/file1.zip
访问方法://计算机名(可省)/文件的路径名
mailto:yuhang.shang@qq.com
访问方法://邮件地址

注:不同的服务器具有不同的编号,例如Web是80,邮件是25等。
我们以第一个url为例:
http://user:passerword@www.xxxxx.com:80/dir/file1.htm

http部分:表示访问Web服务器时应该使用HTTP协议(HTTP:Hypertext Transfer Protocol,超文本传送协议)
user部分:用户名(可省略)
passerword部分:密码(可省略)
www.xxxxx.com部分:Web服务器域名
80部分:端口号(可省略)
/dir/file1.htm部分:文件的路径名

3.URI

浏览器在使用HTTP协议访问Web服务器时,发送的请求消息包含两个部分:方法URI。“方法”是“进行怎样的操作”,“URI”指出“对什么”进行操作。

URI:一般来说,URI的内容是一个存放网页数据的文件名或者一个CGI程序的文件名,亦或者是可以直接用URL来作为URI。总的来说,URI就是访问目标。

方法:http有许多方法,最主要的是getpost方法。除此以外,还有headoptionsputdeletetraceconnect等方法。

4.HTTP请求消息

大体流程:客户端浏览器先发送给Web服务器由URI和方法构成的请求消息,Web服务器收到后返回客户端浏览器响应消息。(这是一个很复杂的过程,其中还有DNS解析、建立套接字连接等,但在这里我们先不详述)

a.请求消息

1 <方法><空格><URI><空格><HTTP版本>
2 <字段名>:<字段值>
3 ...
4 ...
5 ...
6 <空行>
7 <消息体>

第1行称为请求行,通过这一行可以大概了解请求的内容。
第2-5行称为消息头,每行包含一个头字段,用于表示请求的附加信息。
第7行部分称为消息体,包含客户端向服务器发送的数据,例如POST方法发送的网页表单数据。

b.响应消息

1 <HTTP版本><空格><状态码><空格><响应短语>
2 <字段名>:<字段值>
3 ...
4 ...
5 ...
6 <空行>
7 <消息体>

第1行称为状态行
第2-5行部分称为消息头
第7行部分称为消息体,包含服务器向客户端发送的数据,例如从文件中读取的数据,或者CGI应用程序输出的数据。消息体的内容作为2进制数据来处理。

c.状态码

状态码的第一位数字表示状态类型,第二、三位数字表示具体的情况。如下表。

状态码含义
1xx告知请求的处理进度和情况
2xx成功
3xx表示需要进一步操作
4xx客户端错误
5xx服务器错误
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:51:07  更:2021-07-24 11:53:40 
 
开发: 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 17:53:50-

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