世界上任何一栋建筑必须有一个地址才能找到
互联网上任何一个资源必须有一个“URL”才能被访问
URL的完整格式:
<scheme>://<user>:<pwd>@<host>:<port>/<path>;<params>?<query>#<frag>
scheme:方案,指定以哪种协议从服务器获取指定资源;方案名不区分大小写,常见方案:HTTP、HTTPS、FTP、MAILTO、RTSP、FILE、NEWS、TELNET等
host:主机名,资源所在服务器的ip地址或者域名
port:端口号,没想服务在服务器上都对应一个监听端口号
注:访问某个资源必须通过ip地址,dns用于将域名(例如www.baidu.com)解析为ip地址。
最常见的能上QQ,打不开网页,原因就是DNS配置错误。
path:路径,服务器上资源的本地名称,由一个/将其与前面的URL组件分割开来
params:参数,某些方案会使用参数来指定输入参数,每个参数都采用“名/值”对形式,一个URL中可以有多个参数,使用分号隔开。
query:查询字符串,某些方案会使用查询字符串传递参数以激活应用程序,使用?与其他组件分隔。
frag:片段,也称为anchor锚点、tag书签,指一个资源中某一部分的名字。通过#与其他分隔。
HTTP协议
1.作用
规范了数据是如何打包的以及数据是如何传递的
2.Message 消息/报文
在HTTP客户端与服务器间传递的数据块。
分类:
1.Request Message : 客户端向服务器发送的请求
2.Response Message : 服务器端根据客户端的请求消息,返回给客户端的响应消息
以Firefox为例,按F12进行调试,点击网络选项卡
这是在地址栏输入www.baidu.com并回车后的结果,在网页中,凡是有href和src的地方都会向服务器发送一个请求。
点击上图中红色方框内的www.baidu.com
3.请求消息(Request Message)
①请求起始行
请求方法(GET) 请求URL(www.baidu.com) 协议(HTTP)和版本号(1.1)
GET:表示客户端想获取服务器上的资源。1.无请求主体 2.依靠地址栏传递数据给服务器
POST : 表示客户端想传递数据给服务器。有请求主体
②请求头
Host:www.baidu.com 请求的主机地址
Connection:keep-alive 告诉服务器做持久连接
User-Agent 告诉服务器,浏览器的类型
Cache-Control:max-age=0 告诉服务器缓存信息,不缓存
Accept-Language 告诉服务器自己能接收的自然语言
③请求主体
Form Data 是请求主体
注:Query String(查询字符串)不是请求主体,是URL的一部分。
4.响应消息(Response Message)
①响应起始行
协议版本号(HTTP/1.1) 响应状态码(200) 原因短句(OK)
200:OK 404:Not Found
②响应头
content-type 响应的主体类型,告诉浏览器响应的数据是什么格式以及什么类型的
③响应主体