【网络是怎么连接的】—— 1.1 生成 HTTP 请求消息
热身问题(判断对错)
1. http://www.XXX.com 中的 www 代表 World Wide Web 协议(对通信操作规则所作的定义)。
错误,WWW是万维网(world wide web)的简称,它是建立在INTERNET、超文本、多媒体基础上的全球信息查询系统,不是一种协议。
2. 个人也可以申请注册互联网中的域名。
正确,新修订的《中国互联网络信息中心域名注册实施细则》,于5月29日零时起实施。修订后的《实施细则》规定,“任何自然人或者能独立承担民事责任的组织均可在本细则规定的顶级域名下申请注册域名”。这意味着自然人可申请注册“.CN”“.中国”等顶级域名。
3. 浏览器等网络应用程序实际上并不具备网络控制功能。
正确,浏览器委托操作系统来控制网络。
本节重点:
- 1. 浏览器如何解析网址?
- 2. 浏览器根据网址生成的请求消息是怎样的?
1.1.1 输入网址
网址(URL):在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址。
除了常见的 “http:” 开头的网址,如CSDN:https://blog.csdn.net/qq_40682833?spm=1010.2135.3001.5421,还可以是 “ftp:”“file:”“mailto:” 等。因为浏览器不仅仅可以用来浏览网页(访问web服务器),也可以当成电子邮件客户端等等。此外,URL可能会根据不同需要,包含文件路径、用户名、密码、服务器端口号等信息。
端口号:ip地址对应服务器,而端口号则对应服务器里不同的程序,例如假设qq占用6666号端口,好友发来的数据就由6666号端口接收,6666号端口供qq这个程序使用。TCP与UDP段结构中端口地址都是16比特,可以有在0-65535范围内的端口号。任何TCP/IP实现所提供的服务都用1-1023之间的端口号。端口号小于256的一般为常用端口号。其中常用的保留TCP端口号有HTTP 80、FTP 20/21、Telnet 23、SMTP 25、DNS 53等;常用的保留UDP端口号有DNS 53、BootP 67(server)/ 68(client)、TFTP 69、SNMP 161等。
当开头为“http:”时,浏览器可以得知使用HTTP协议。
HTTP:Hypertext Transfer Protocol,超文本传送协议。
1.1.2 解析网址
浏览器首先要做的就是解析网址,生成发送给 Web 服务器的请求消息。
URL格式:
http: // web服务器名 / 目录名 /...../文件名例如:
http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.pnghttp表示访问数据源的机制(协议)
www.baidu.com为web服务器名
PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png表示数据源(文件)的路径名
1.1.3 省略文件名的情况
1) 类似 http://www.lab.glasscom.com/dir/ 的情况
dir/结尾,说明dir/后面本来的文件名被省略了,这种情况一般是服务器上已经事先设置好默认文件名,大多数情况下会访问 index.html 或者 default.htm 等。
2)类似 http://www.lab.glasscom.com/whatisthis 的情况
由于末尾没有“/”,所以 whatisthis 应该理解为文件名才对。但实际上,:如果 Web 服务器上存在名为 whatisthis 的文件,则将 whatisthis 作为文件名来处理;如果存在名为 whatisthis 的目录,则将 whatisthis 作为目录名来处理。
1.1.4 HTTP的基本思路
HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤。
首先,客户端会向服务器发送请求消息,请求消息包括两个部分:
对什么?
对什么的部分称为URI(Uniform Resource Identifier,统一资源标识符),一般为存放网页数据的文件名或CGI程序(公共网关接口Common Gateway Interface,CGI是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能)的文件名,访问目标统称为URI。
进行怎样的操作?
进行怎样的操作称为方法。典型的例子包括读取 URI 表示的数据、将客户端输入的数据发送给 URI 表示的程序等。
根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
图源:HTTP请求方法大全
HTTP消息中还有可能存在头字段,用来表示附加信息,先发送头字段后发送数据,头字段可有可无。
Web 服务器收到请求消息,对内容进行解析。结果存放在响应消息中,响应消息开头有一个状态
码,用来表示操作的执行结果是否成功,我们经常看到的 404 Not Found 就是状态码。
状态码后面就是头字段和网页数据,响应消息发回客户端,客户端浏览器读取数据,显示在屏幕上,就变成了我们看到的东西。
以访问 http://www.lab.glasscom.com/dir/1.jpg 为例:
- 请求消息中写上 GET 方法(请求指定的页面信息)
- URI 中写上存放网页数据的文件名“/dir/1.jpg”
- web服务器收到消息,读出相应文件数据放到响应消息中,返回给客户端
- 客户端浏览器读取数据并显示
另外,POST方法也常用,用于提交表单,除此之外的其他方法基本用不上。
GET 方法能够发送的数据只有几百个字节,如果表单中的数据超过这一长度,则必须使用 POST 方法来发送。
1.1.5 生成HTTP请求信息
请求消息的第一行称为请求行。方法可以告诉 Web 服务器它应该进行怎样的操作,选用哪种方法也根据场景来确定。
写好方法之后,加一个空格,然后写 URI。URI 部分的格式如下,一般是文件和程序的路径名,最后说明 http 的版本号。
/< 目录名 >/…/< 文件名 >
第二行开始为消息头。用于存放请求内容的详细信息,如数据有效期和最后更新时间等,消息头中的内容随着浏览器类型、版本号、设置等的不同而不同,大多数情况下消息头的长度为几行到十几行不等。下图为一些常见的消息头:
写完消息头之后,添加一个空行,然后就是消息体(需要发送的数据),如果使用 GET 方法,仅凭方法和 URI,Web 服务器就能够判断需要进行什么操作,因此消息体里不需要填写任何数据。而当使用 POST 方法时,需要将表单中填写的信息写在消息体中。
1.1.6 发送请求后会收到响应
响应消息和请求消息类似,仅第一行存在差别。
第一行的内容为状态码和响应短语,用来表示请求的执行结果(成功/出错)。
- 状态码:一个数字,告诉程序执行结果。
- 相应短语:一段文字,告诉人们执行结果。
例如 404 - Not Found 无法找到指定位置的资源,就是一个常用的应答。
具体的状态码和含义可以参考常见HTTP的状态码
返回响应消息后,浏览器便会提取消息并显示,如果只有文字直接显示。而如果还有图片,还要进一步操作。当网页包含图片,会在网页中的相应位置嵌入表示图片文件的标签 的控制信息。浏览器遇到图片标签,先预留图片显示空间,然后再一次访问web服务器,获得该图片。
每条请求消息中只能写 1 个 URI,所以每次只能获取 1 个文件,如果一个网页有3张图,则要发送4次请求。
图片标签形如:
<img src="data:image1.jpg">
本节完。
【网络是怎么连接的】—— 1.1 生成 HTTP 请求消息相关推荐
- 网络是怎样连接的--生成HTTP请求消息过程
文章目录 1.1 何为网址 1.2 解析网址 1.3 HTTP在干嘛 1.4 生成http请求和响应 1.1 何为网址 网址,准确来说应该叫URL,比如以http://开头的那一串东西.但实际上除了& ...
- 如何 接收消息服务器url,(读书笔记)网络是怎样连接的——浏览器生成消息...
概览 本次探索之旅从用户在浏览器中输入网址(URL)开始. 生成HTTP请求消息 浏览器的工作会从对用户输入的网址进行解析开始.浏览器如何解析网址是我们的第一个看点.然后浏览器会根据网址的含义来生成请 ...
- 《网络是怎样连接的》-----户根勤,读书笔记
目录 1. 浏览器生成消息 1.1 生成HTTP请求消息 1.2 向DNS服务器查询web服务器的ip地址 1.3 DNS服务器接力查询 1.4 委托协议栈发送消息 2. 通过电信号传输TCP/IP数 ...
- 《网络是怎样连接的》学习(一、浏览器)
文章目录 一.浏览器生成消息 1.1.生成http请求消息 1.1.1.解析URL 1.1.2 HTTP的基本思路 1.2.向DNS服务器查询Web服务器的IP地址 1.2.1. IP的基础知识 1. ...
- 网络是怎样连接的(2)
第 1 部分 生成 HTTP 请求消息 2.1. 向 DNS 服务器查询 Web 服务器的 IP 地址 2.1.1 IP 地址的基本知识 生成 HTTP 消息之后,接下来我们需要委托操作系统将消息发送 ...
- 《网络是怎样连接的》读书笔记1
<网络是怎样连接的>读书笔记 1. 写在前面 今日看到一篇博文,作者说"写成博客的目的是防止自己走马观花,花了一堆时间还什么搜没学到",我自诩接受.学习新事物比较快,然 ...
- 网络是怎样连接的 - 探索之旅路线图
虽然Web服务器在收到订单数据之后和销售系统一起对订单进行实际处理的操作很复杂,但其实浏览器和Web服务器之间的交互却很简单,概括如下. (1)浏览器向Web服务器发送请求. (2) Web服务器根据 ...
- 网络是怎样连接的--客户端
指南 文章是对整个网络交互的总结(客户端部分),本篇会以客户端为侧重点,比较详细的讲解客户端发起网络请求到服务端返回数据这一个交互过程中客户端主要做了哪些工作以及经历了什么.文内理论知识偏多,不会讲得 ...
- 网络是怎样连接的 - 读书笔记
第1章 浏览器生成消息 ---- 探索浏览器内部 1.1 生成HTTP请求消息 - 1.2 向DNS服务器查询IP地址 IP地址(Internet Protocol Address) 是指互联网协议地 ...
最新文章
- windows上python3安装
- JDK踩坑: Smart LocalDate
- java jsoup爬取动态网页_java通过Jsoup爬取网页(入门教程)
- druid删除数据_Apache druid 删除数据流程 0.13
- python获取文件夹里有什么文件+查看特定格式的文件
- SignalR循序渐进(三)简易的集群通讯组件
- Perl连接Oracle数据库的一些操作脚本【转】
- Scrapy相关命令
- 多线程异常处理【转】
- Android N-ify使用教程,Xposed新模块 无需升级也能使用Android N新功能
- FOR XML PATH 应用及其反向分解
- ubuntu串口调试工具RS485
- 让老主板也支持nvme固态硬盘做系统启动盘,使用mmtool给主板添加nvme协议
- 英语单词在计算机中怎么存放,电脑怎么学英语单词
- 在Android的 设置-显示 中增加控制屏幕旋转方向的选项
- 高性能PC机与服务器的真正区别
- office@word官方文档查看@审阅@批注@修订
- python的turtle的等边等角三角形的经典简洁画法
- java 中Protect 关键字
- Latex中的实心原点