网站设计步骤大全全网营销整合推广
HTTP请求基础
格式化数据块称为HTTP报文
请求报文:从客户端发往服务器的HTTP报文,只有请求起始行+请求首部,没有请求主体
响应报文:从服务器发往客户端的报文,包含响应起始行+响应首部+响应主体


HTTP报文通过传输控制协议(TCP)连接:
- 无差错的数据传输
- 按序传输
- 未分段的数据流

HTTP事务=请求命令(HTTP方法)+响应结果

从输入URL到浏览器显示全过程
简单描述:通过URL获取目标IP地址+TCP端口号 >> 建立TCP/IP连接 >> 传输HTTP报文
URL举例:(HTPP端口默认80,HTTPS端口默认443)
index.html表示web服务器的资源,资源名称为统一资源标识符(URI)


浏览器处理请求图解:

- 输入URL
- 浏览器从URL
解析服务器主机名 IP解析:通过DNS服务获取服务器主机名对应的IP地址- 从URL
解析端口号 - 与IP对应的端口
建立TCP连接 - 浏览器发送一条HTTP请求报文
- 服务器向浏览器回送一条HTTP响应报文
- 关闭连接,浏览器显示页面
URL语法、URL组件及含义
URL结构:方案://服务器位置/路径

用怎样的方案请求哪个地方的什么资源,简称(我瞎定义的):How - Where - What
URL语法通用格式:<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>(由多个组件段组成)
-
<scheme>:方案名(协议)不区分大小写,也就是说HTTP://...=http://...。 -
<user>:<password>:FTP协议需要用户名和密码,比如:ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu(如没有提供,浏览器会给一个默认值) -
<host>:<port>:主机和端口号 -
/将URL划分为一些路经段(<path>;<params>),path和params为一组,用;隔开。比如:http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true -
<query>为查询组件,用&连接多个键值对。

-
<frag>为片段组件,前面跟一个#

URL快捷方式
相对URL
URL有两种方式:绝对的和相对的。

解析相对URL的第一步:分解URL,即:将相对URL和基础URL划分成组件段。
将相对URL转换成绝对URL如图:缺啥补啥(相对URL中缺的组件就用基础URL中的组件段补上)

自动扩展URL
浏览器主动进行主机名扩展(匹配自动补齐)、历史访问扩展(匹配URL前缀)
URL编码和字符规则
基于适配各种不同的协议 + 供人类阅读 + URL完整的需求,引入了转义机制,将不安全字符编码为安全字符再进行传输。
用US-ASCII字符集集成转义序列对数据进行编码,实现可移植性和完整性。
%后跟着两个表示字符ASCII码的16进制数,举例:

保留字符:

URL方案


