linux HTTP 协议和IO模型

一:HTTP协议

http协议:HyperText Transfer Procotol超文本传输协议,http协议是无状态的,监听在80端口,TCP协议上。HTTP协议的特点有以下几点:

1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

在服务器不是持久连接的状况下,客户端在第一次访问服务器时服务器会记录客户端的个人标志信息,当客户端刷新或者再次访问时,服务器就要要求客户端输个人的标识信息,记录访问者的信息。也就是说在不是持久连接的状况下,服务器无法追踪访问者的来源。

于是就出现了 cookie和session

html:HyperText Mark Language:超文标记语言

web资源:

   静态文件:.jpg .gif .html  .txt .js .css.mp3 .avi

   动态文件:.php  .jsp

http早期版本只能传输文本内容,到HTTP/1.0之后支持MIME。使HTTP协议支持传输多媒体信息。

MIME:Multipurpose Internet Mailextention

MIME类型:Major/minor

text/plain

image/jpeg

image/gif

URI:Uniform Resource Idetifier :统一资源标识符

   URL:Uniform Resource Locate:统一资源定位符

   用于描述某服务特定资源的位置

   Scheme://Server:Poert/Path/to/resource

   URN:Uniform Resource Naming:统一资源命名符。

   URL方案:scheme

   服务器地址:IP:Port

   资源路径

基本语法:               

        <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

params:参数

    http://www.kk.com/bbs/hello;gender=f

query:查询

   http://www.kk.com/bbs/item.php?usesrname=tom&title=abc

frag:片段

request 报文语法格式:

   <method><request-URL> <http/Version>

   <headers>

   <entity-body>

reponse报文语法格式:

猜你喜欢

转载自blog.csdn.net/borntodieee/article/details/78948358