HTTP协议
1、HTTP结构
2、在Windows Server上搭建web服务器
3、分析HTTP协议流量
一、HTTP协议
1、概念
- HTTP(超文本传输协议),是用于在万维网服务器上传输超文本(HTML)到本地浏览器的传输协议
- 属于TCP/IP协议的一员,传输HTML文件、图片、查询结构、视频等等
- 基于传输层TCP的80端口
2、万维网服务
- 采用C/S架构
- 客户机通过浏览器去请求,从而在浏览器上就可以观看到对应的图形界面,这就是B/S架构(浏览器/服务器)
3、万维网服务的软件
- Windows Server IIS(Windows平台)
- apache(多平台)
- tomcat(多平台)
- nginx(多平台)
- ....
二、HTTP工作原理
-
在客户端使用浏览器通过URL向HTTP服务器发送请求
-
URL(统一资源定位符)
- 组成:协议+主机和端口(默认80端口)+文件名和路径
-
web服务器根据收到的请求直接向客户机相应信息
-
针对HTTP协议的端口号是80端口,默认端口可以修改(会影响客户机的访问,建议改为其他非标准端口),否则会出现端口占用
-
-
交互过程
1、注意事项
- HTTP是无连接的(限制每次连接只处理一个请求),可以节省传输时间,来一个请求处理一个请求
- HTTP是独立的,只要客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用适合的MIME-type(消息内容类型)
- HTTP是无状态的,没有记忆能力,如果后续处理需要用到前面的信息时,需要重新连接获取,每次连接传送的数据量比较大(因此后续加入了session和cookie),服务器不需要提供先前信息,应答比较快
三、分析http流量
1、请求头(图中红色部分)
1、请求方法(GET/POST)
GET用于获取内容,POST用于传输实体内容
2、HOST主机
主机的IP地址
3、连接状态
4、Upgrade-Insecure-Requests
请求头向服务器发送一个信号,表示客户对加密和认证响应的偏好,并且它可以成功处理,告诉浏览器,可以将HTTP连接升级为HTTPS连接
5、用户信息
浏览器信息和使用系统的信息
6、ACCEPT
告知服务器,用户的客户端可以处理的类型有哪些
7、压缩方法
8、语言
告知服务器,用户可以处理的语言
2、返回头(图中蓝色部分)
1、HTTP状态码
1开头的,一般情况下表示,服务器已收到请求,客户端可以继续进行操作
2开头的,服务器收到的请求已处理成功
3开头的,一般是重定向,
4开头的,一般代表客户端出错或者请求内容不存在
5开头的,一般代表服务器错误
2、Content-Type连接的类型
3、Last-Modified
上次修改的日期
4、Accept-Ranges
支持的标识
5、ETag
被请求变量的实体的变量名
6、Server
服务器类型
7、date
请求时间
8、Content-Length
内容的长度