Http响应码

1.Http请求

 浏览器 www.baidu.com 先看本地电脑是否存在百度服务器的IP,如果存在直接 发送请求报文,如果不存在,则会先请求 DNS服务器,通过映射关系找到 百度 服务器的 IP地址返回给浏览器,浏览器保存IP ,并通过流的方式向 百度服务器 发送 转化为byte[]的请求报文。

2.TTP协议响应码

  “200” : OK

  “302” : Found 重定向

  “400” : Bad Request 错误请求,发出错误的不符合Http协议的请求

  “403” : Forbidden 禁止

  “404” : Not Found 未找到

  “500” : Internal Server Error 服务器内部错误。

  “503” : Service U navailable 一般是访问人数过多

  • 200段是成功;300段需要对请求做进一步处理;400段表示客户端请求错误;500段是服务器错误。

HTTP 常用ContentType

type/html(默认是这个); image/gif;  image/jpeg; text/plain(普通文本)

http其他 (是无状态的)

http不会记得”上个请求是什么”,所以哪怕是同一个页面中的JS/CSS/JPG也都需要重复提交。

网页中如果有图片,CSS,JS等外部文件的话,这些请求都会在一个单独请求中,也就是说并不是页面的所有内容都在一个请求中完成,而是每个资源都是一个单独请求。

3.服务器端

 服务器端 分 内核模式 和用户模式 , 内核模式为windows底层的一些东西内核模式(Kernel Model)中的 HTTP.SYS(无法看到,他实现了一个插件的机制,自己不处理程序,只负责接收请求,只负责接收请求,让其他exe等程序处理)监听80端口(监听的socket),识别请求的协议:一般为HTTP,识别请求的端口,把请求发送给具体的应用程序(IIS安装后就在注册表里注册了)。
这时候还会再创建一个新的端口 来负责和请求的客户端通信(称为代理Socket或通信Socket)

  1. w3svc服务(托管)和 inetInfo.exe进程 和起来就是IIS
    请求通过HTTP.SYS 交给 w3svc服务(svchost.exe),来查看INETINFO.exe
    访问 IIS进程中的元数据(包含扩展注册信息) 查下请求后缀的文件应如何处理,

如果是静态网页(.htm,.html等)会先通过内核模块再通过通信端口发送回去。

 如果是动态网页(.aspx)会交给扩展 aspnet_isapi.dll(非托管的代码写的,非托管和托管代码的桥梁)处理,然后aspnet_isapi会负责启动ApplicationDomain,请求交给(通过windows系统的句柄,句柄是操作系统的一些标识符) ISApiRuntime,在ISapiRuntime内部,通过ecb指针创建了一个HttpWorkRequest对象(就是简单的对报文的一个封装)然后将HttpWorkRequest对象 交给HttpRunTime PR方法,在PR方法内部又将HttpWorkRequest对象封装成了HttpContext(也就是把请求报文封装成了Request对象和Response对象)再通过HttpApplicationFactory创建一个具体的Application实例
然后请求随着 Application管道一次一次的流,在管道里面有19个公开的事件(共23),请求留到Application的PR方法的时候,帮我们一次性的把19个事件都调用了,二者19个事件又允许我们开发人员自己注册响应方法,可以过滤响应报文(对报文的处理)第8个事件时会根据HttpContext中的RequestURL(请求的地址)会创建最终处理当前请求的Handler实例
在11个事件和12个事件之间会调用创建的Handler实例的PR方法

ISAPIRuntime.PR()通过ECB创建HttpWorkRequest对象,将请求报文放到其中

Http.Runtime.PR()创建HttpContext对象(包含HttpRequest对象和HttpResponse对象,分析浏览器的请求报文,然后将请求报文的数据存入HttpContext里的Resquest属性中)
HttpApplicationFactory 获取一个HttpApplication实例
HttpApplication执行管道23个事件,19个事公开给开发人员的(插件机制) ,负责创建和执行页面


转载请注明: Zhou•Yong Http响应码

上一篇
orcale总结 orcale总结
orcale 导出和导入数据有些网友报错,一般都是没有dba权限,授权: sqlplus / as sysdba 进入后直接创建用户并授予dba的权限 例如: sqlplus / as sysdba SQL*Plus: Release 11
2019-01-02
下一篇
Asp.Net页面生命周期 Asp.Net页面生命周期
Asp.Net页面生命周期1.什么是Asp.Net页面生命周期  当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页面
2019-01-02
目录