一、页面呈现原理
Web页面呈现的过程
客户端
(浏览器)发送请求(URL
)通过网络
到达服务器。服务器
运算后,生成文件,将文件通过网络,返回给客户端。
- 客户
端解
析文件呈现。
- 客户
客户端(Client),为客户提供本地服务的程序。
- 服务器(Server),是提供计算服务的硬件设备或者软件程序。
二、TCP/IP五层协议栈
客户端
HTTP客户端(应用层)《==》TCP(传输层)《==》IP(网络层)《==》网络(链路层)《===》网络《==》网络《==》IP《==》TCP《==》HTTP服务器服务器
三、各层分工
- 应用层
HTTP
协议。
- 传输层(TCP)
TCP
(Transmission Control Protocol,传输控制协议)- UDP (User Data proto,用户数据报协议)。
- 网络层(IP层)
IP
(Internet Protocol,网路互联协议)。
四、HTTP
HTTP协议规定,客户端发送的请求,服务器端响应该请求并返回。
HTTP协议之间的会话方式
- 浏览器与服务器之间的通信过程要经历
四个步骤
- 1、建立连接
- 2、发送请求
- 3、回送响应信息
- 4、关闭连接
- 浏览器与WEb服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每个页面的访问,浏览器与WEB服务器都要建立一次单独的连接。
- 浏览器到WEB服务器之间的所有通讯都是
完全独立分开
的请求和响应儿。
请求报文和响应报文
请求报文
- 请求头:
- 第一行:请求方法、请求URL、协议版本(目前都是HTTP/1.1)
- 请求
首部字段
(可选的、可配置的)
- 请求体
响应报文
- 请求头
- 第一行:协议版本、状态码、状态码短语(解释说明状态码的意义)
- 响应首部字段(可选的、可配置的)
- 内容实体
五种请求方式
- GET : 获取资源(常用)
- POST : 传输实体主体(常用)
- PUT :传输文件(很少使用)
- HEAD ;获得报文首部(很少使用)
- DELETE :删除文件(很少使用)
GET方法与POST方法
- GET方法
没实体
内容 - POST方法
有实体
内容 - GET方法的
使用频率
远远高于POST方法
五、抓包工具
Fiddler
Chrome自带的http抓包工具
- Wireshark
- httpwatch
六、URL
Http://www.atguigu.com:80/main/index.html?user_name=xiaohong&major=java#user_info
http://
:协议方法名www.atguigu.com
:服务器地址:80
:端口号/main/index.html
:文件路径?user_name=xiaohong&major-java
:查询字符串#user_info
:片段表示符
七、http状态码
五大类
- 1XX Informational(信息性状态码) 接收的请求正在处理
- 2XX Success(成功状态码) 请求正常处理完毕
200:成功
204:请求成功但是没有信息可返回
206:返回部分内容
- 3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
301:永远改变位置 请浏览器改变书签
302:暂时改变位置
303:临时改变位置 明确请浏览器是用GET方法发送请求
304:未改变位置 不返回主体内容 使用浏览器缓存中的数据
307:临时重定向 不会将post请求变成get请求
- 4XX Client Error(客户端错误状态码) 服务器无法处理请求
400:坏的请求 请求报文中存在的语法错误
401:未授权
403:禁止访问 禁止用户获得这个地址的资源
404:没找到
- 5XX Server Error(服务器错误状态码) 服务器处理请求出错
500:服务器内部错误
503:服务不可用
状态码的数量庞大,总数量达到60余种,但实际上经常用到的大概只有14中。
八、DNS
DNS就是解决IP地址和域名之间的映射。
九、端口
在网络技术中,端口有两种类型
- 物理端口:物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。
- 逻辑端口:逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。
- 为了对端口进行区分,将每个端口进行了编号,这就是端口号。
端口号分类:
- 熟知端口号:0~1023
- 注册端口号:1024~49151 我们使用的
- 临时端口号:49152~65535
Socket
套接字
:用于描述IP地址和端口,是一个通信链的控制端,可以用来实现不同虚拟机或不同计算机之间的通信
- socket=IP+Port(套接字=IP地址+端口号)
- 一个socket的背后是一个服务