http服务器是什么,服务器组成部分介绍


做了多年web开发,http真是熟悉的陌生人(经常在用,但是从头到尾理清楚真的是很有难度的),其实http概述和netty中的http应用真有必要说下,一起聊聊netty实现tomcat的功能,请求服务的功能 。
(一)Http协议概述
1.什么是Http协议
HTTP是一个属于【应用层】的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统 。
2.HTTP协议的主要特点
支持客户/服务器模式 。
简单快速
客户向服务器请求服务时,只需传送请求方法和路径 。请求方法常用的有GET、HEAD、POST 。每种方法规定了客户与
服务器联系的类型不同 。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快 。
灵活
HTTP允许传输任意类型的数据对象 。正在传输的类型由Content-Type加以标记 。
无连接
无连接的含义是限制每次连接只处理一个请求 。服务器处理完客户的请求,并收到客户的应答后,即断开连接 。采用这种方式可以节省传输时间 。
无状态
HTTP协议是无状态协议 。无状态是指协议对于事务处理没有记忆能力 。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大 。另一方面,在服务器不需要先前信息时它的应答就较快 。从HTTP协议来讲是无状态的,其实在应用的时候,很多情况通过回话的方式还是有状态的 。
(二)Http协议交互过程
协议交互本质是指协议两端(客户端、服务端),互联网上没有协议是混乱的,正如如果现实中没有法律也会打乱一样 。
1.传输数据
传输数据一般基于TCP/IP 实现,体现到开发语言上就是我们所熟悉的Socket 编程 。
2.交换数据
交换数据本质是指,两端(客户端、服务端)能各自识别对方所发送的数据 。那么这就需要制定一套【报文编码】格式,双方以该格式编码数据发送给对方 。
Http 对应的Request 与Response报文
注: 我们可以通过抓包工具(fiddler)可以直接看到该报文格式 。
报文约定好以后两端都需要对其进行解码和编码操作
3.Http协议内容组成
请求方法
方法描述GET请求指定的页面信息,并返回实体主体 。HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件) 。数据被包含在请求体中 。POST请求可能会导致新的资源的建立和/或已有资源的修改 。PUT从客户端向服务器传送的数据取代指定的文档的内容 。DELETE请求服务器删除指定的页面 。CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器 。OPTIONS允许客户端查看服务器的性能 。TRACE回显服务器收到的请求,主要用于测试或诊断 。

推荐阅读