第一章:Http概述
引言
web浏览器、服务器和相关的web应用程序都是通过http相互通信的,http是现代全球英特网中使用的公共语言。
本章主要内容
1、web客户端与服务器是如何通信的
2、资源(表示web内容)来自何方
3、web事务(请求与响应)是怎样工作的
4、http通信所使用的报文(请求报文/响应报文)
5、底层TCP网络协议
6、不同的http协议变体
1.2web客户端与服务器
web内容都是存储在web服务器上的。web服务器所使用的是http协议,因此也经常称web服务器为http服务器。
web客户端:通常可以认为是浏览器(IE、Firefox、Chrome)
http服务器:种类很多(apache、nginx、tomcat等)
客户端服务器模型
1.3资源
web服务器是web资源的宿主
web资源分为
1、静态资源(html、txt、png等)
2、动态资源(服务器生成资源比如访问数据库或第三方网关获取的数据)
MIME(媒体类型)
MIME是一种文本标记,表示一种主要的对象类型和一种特定的子类型,中间由一条斜杠(/)分隔
比如:text/html,text/plain,image/jpeg,image/gif
URI(统一资源标识符)
URL(统一资源定位符)也是最最常用的
通常包含三部分:方案、服务器地址、资源地址
比如:http://www.baidu.com/index.php
URN(统一资源名)并不流行
1.4事务(http事务)
http事务指的是一次完整的请求响应过程,并不是我们通常理解的数据库事务概念。
1.4.1方法
1.4.2状态码
1.4.3web页面可以包含多个对象
1.5报文
http报文是由一行一行的简单字符串组成的。http报文是纯文本,不是二进制代码,所以很方便对其进行读写。
报文分类
请求报文
响应报文
报文格式
起始行
首部字段(我自己这么叫:请求头/响应头)
主体(请求体/响应体)
备注:起始行和首部都是文本形式而且都是结构化的,而主体不是,主体中可以是任意二进制数据内容当然也可以是文本内容。
请求报文格式
响应报文格式
1.6连接
1.6.1 TCP/IP
http是个应用层协议.http无需惯性网络通信的具体细节,它把联网的细节都交给了通用可靠的因特网传输协议TCP/IP.
tcp/ip网络模型
1.6.2 连接
基本的浏览器连接处理
1、浏览器从URL中解析出服务器主机名
2、浏览器将服务器主机名转换为ip地址
3、浏览器将端口号从URL中解析出来
4、浏览器建立一条与web服务器的TCP连接
5、浏览器向服务器发送http请求报文
6、服务器向浏览器发送http响应报文
7、关闭连接、浏览器显示文档浏览器
建立tcp连接三次握手
1.7协议版本
http版本主要有
http 0.9:已经不用了
http 1.0:有遗留
http 1.1:目前主流
http 2.0:正在大力推广
备注:我们常听到的https并非指某个版本而是在http协议加上了基于ssl或tls封装。
h**ttps通信原理**
1.8web结构组件
代理:位于客户端和服务器之间的http中间实体
缓存:http的仓库,使常用的页面和内容副本可以保存在离客户端更近的地方
网关:连接其它应用程序的特殊web服务器
隧道:对http通信报文进行盲转发的特殊代理
Agent代理:发起自动http请求的半智能web客户端
http协议主要特征
1、支持客户端/服务器端通信模式
2、协议简单方便快速
3、灵活:Http协议允许客户端和服务器端传输任意类型任意格式的数据对象,由Content-Type指定数据类型
4、面向无连接(服务器响应之后立即断开,http1.0之后可以指定为无连接或长连接)
5、面向无状态(客户端和服务器都不记忆状态,客户端传输数据就更少也更简单高效了,与此同时也引出了新的问题。)
总结
本章主要简单介绍了http协议和http协议涉及到的内容。
时间: 2024-12-23 20:47:43