8-9 Http协议及HTTP服务器

时间:2022-01-18 06:13:42

1. HTTP协议:超文本传输协议

用于从WWW服务器传输超文本到本地浏览器的传输协议
静态网页传输
文件下载
应用层协议
客户端是浏览器,服务器端是网站
RFC 2616定义了今天普遍使用的HTTP1.1

1.1HTTP请求

组成:请求行,消息报头,请求正文
请求行:method Request-URI HTTP_VERSION CRLF,如GET /index.html HTTP/1.1
GET 请求获取Request-URI所标示的资源
客户端向服务器取数据
应用场合:访问页面
POST 在Request-URI所标识的资源后附加新的数据
客户端向服务器提交数据
应用场合:提交表单
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
服务器只返回头部信息,不返回报体
应用场合:测试服务器(连通性,资源是否可用)
PUT 请求服务器存储一个资源,并用Request_URI作为其标识

报头:包含一些交互控制信息,由若干域组成,用Name:value方式表示,报头用两个CRLF表示结束
Host域:指定被请求资源的主机和端口号,它通常从HTTP URL中提取出来的
Accept域:客户端接收哪些类型的信息
Accept-Charset域:指定客户端接受的字符集
Accept-Encoding:指定可接受的内容编码
Connection域:表示是否持续连接
8-9 Http协议及HTTP服务器

1.2 HTTP响应

组成:报头、报体
报头:交互控制信息
8-9 Http协议及HTTP服务器

1.3 如何抓取数据包

一、命令行中通过如下指令下载信息:
***$wget -d www.baidu.com

二、linux下抓包:设置IP和端口
$sudo tcpdump -X host 192.168.1.100 and tcp port 8888

三、其他工具wireshark

2 HTTP服务器

2.1功能

对外接收HTTP请求
对HTTP协议进行解析
对HTTP请求进行处理(静态页面返回内容,动态页面转发请求)
系统级功能,负载均衡,流量控制
8-9 Http协议及HTTP服务器

2.2 IIS(Internet Information Services互联网信息服务)

平台:Windows
开发者:Microsoft

2.3 Apache

Apache软件基金会开发
最流行的Web服务器端软件
号称Linux/Unix平台杀手级应用
可以运行在Windows、Linux、Unix等主流操作系统平台
高效、稳定、功能强大并且可以通过简单的API扩展
负载均衡、并发限制、SSL支持、图像处理、压缩、LDAP认证、带宽限制、CGI V8 引擎、日志监控
代码量大,开源

2.4 Nginx

由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的
Nginx是一款轻量级的Web服务器/反向代理服务器(HTTP模式、TCP模式)
性能卓越,资源需求低,并发量大
扩展性好
文档较少
8-9 Http协议及HTTP服务器
反向代理:一般放在网络入口,常用于外部客户端对内部资源的访问
正向代理:一般放在网络出口
8-9 Http协议及HTTP服务器