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域:表示是否持续连接
1.2 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请求进行处理(静态页面返回内容,动态页面转发请求)
系统级功能,负载均衡,流量控制
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模式)
性能卓越,资源需求低,并发量大
扩展性好
文档较少
反向代理:一般放在网络入口,常用于外部客户端对内部资源的访问
正向代理:一般放在网络出口