| 副标题[/!--empirenews.page--] 《基础拾掇之——http基础》要点:本文介绍了基础拾掇之——http基础,希望对您有用。如果有疑问,可以联系我们。
 
 http协议介绍http:Hyper Text Transfer Protocol 超文本传输协议,是互联网应用最为广泛的一种网络协议,主要用于Web服务.通过计算机处理文本信息,格式为HTML(Hyper Text Mark Language)超文本标记语言来实现. http协议的版本
http 0.9:仅于用户传输html文档http 1.0
引入了MIME(Multipurpose Internet Mail Extesions)机制:多用途互联网邮件扩展,引入这个技术之后,http可以发送多媒体(比如视频、音频等)信息.此机制让http不在单单只支持html格式,还可以支持其他格式来进行发送了.引入了keep-alive机制,支持持久连接的功能(但这个keep-alive原理是在首部添加了某个字段而形成的,并非原生就支持此功能)引入支持缓存功能http 1.1支持更多的请求方法,更加精细的缓存控制,原生直接支持持久连接功能(presistent).
http 2.0提供了HTTP语义优化的传输
spdy : google引入了的一个技术,能够加速http数据交互,尤其是使用ssl 加速机制,但是spdy现在用的还不多. 目前常用的版本就是http 1.0版本和http 1.1版本.
 html文本介绍html文本架构<html>
 ? ?<head>
 ? ? ? ?<title>TITLE</title>
 ? ?</head>
 ? ?<body>
 ? ? ? ?<h1>H1</h1>
 ? ? ? ? ? ?<p></p>
 ? ?<h2>H2</h2>
 ? ? ? ?<p><a href="admin.html" rel="external nofollow" target="_blank">ToGoogle</a> </p>
 ? ?</body>
</html>
 html文档的生成方式
静态事先就编辑并定义完成的
动态通过编译语言编写的程序后输出html格式的结果
 动态语言有:php,jsp,asp,.net
 备注:这些脚本都必须有相应的解释器,比如说 php需要有php解释器等等
 静态和动态的方式
1、Web服务器向内核注册socket2、客户端通过浏览器,向Web服务器发起request请求
 3、Web服务器收到客户端的request信息
 4、如果用户请求的资源在服务器本地的话,http服务会向系统内核申请调用
 5、内核调用本地磁盘里的数据,并将数据发给http服务
 6、http将用户请求的资源通过response报文,最终响应给客户端
动态 
与静态不同的是,如果用户请求的是动态内容,那么此时http服务会调用后端的解析器,由动态语言去处理用户的请求,如果需要请求数据的时候,会向内核申请调用,从而向磁盘中获取用户指定的数据,通过解释器运行,运行的结果通常会生成html格式的文件.然后构建成响应报文,最终发回给客户端. http协议http协议的报文HTTP报文中存在着很多行的内容,一般是由ASCII码串组成,各字段长度是不确定的.HTTP的报文可分为两种:请求报文与响应报文 
request Message(请求报文)客户端 ?-→ ?服务器端
 由客户端向服务器端发出请求,不同的网站用于请求不同的资源(html文档)
response Message(响应报文)服务器端 -→ 客户端
 是服务器予以响应客户端的请求
 请求报文格式介绍请求行 + 请求首部 + 空白行 + 请求实体 <method> 这次请求的方式是什么,也就是请求方法
<request-URL> 请求的是哪个资源,哪个URL.可以是相对路径,如/images/log.jpg,也可以是绝对路径,如http://www.magedu.com/images.banner.jpg
<version> 请求的协议版本是什么,http协议版本,格式HTTP/<major>.<minor>,例如:HTTP/1.0,HTTP/1.1<HEADERS> 首部,首部可能不止一个.各种所可以使用的首部信息
<entity-body> 请求实体,你到底请求的内容是什么
 <version> 响应时客户端请求的是什么版本,服务器端就需要响应什么版本
<status> 请求的状态码是什么 202,403等
<reason-phrase> 响应的状态码的信息是什么,原因短语,这个状态码所响应的意义,易读信息
<HEADERS> 一大堆的响应首部
<entity-body> 响应体
 
起始行也称之为状态行,用于服务器端响应客户端请求的状态信息,由版本号
 <version>+ 状态码<status>+ 原因短语<reason-phrase>组成,例如“ HTTP/1.1 200 OK”响应首部类似请求报文,起始行后面一般有若干个头部字段.每个头部字段都包含一个名字和一个值,两者之间用冒号分割.格式Name:Value.
 例如:
 Content-Type: test/html; charset=utf-8
 Content-Length: 78
空白行最后一个响应首部信息之后就是一个空行,通过发送回车符和换行符,通知客户端空行下无首部信息
响应实体响应实体中装载了要返回给客户端的数据.这些数据可以是文本,也可以是二进制(例如图片,视频)
 例如:
<version> <status> <reason-phrase>
<HEADERS> ? ? ? ? ? ? ? ? ? ? ? ?
# 这里一定要是一个空白行
<entity-body>
 HTTP请求方法在HTTP通信过程中,每个HTTP请求报文中都会包含一个HTTP请求方法,用于告知客户端向服务器端请求执行某些具体的操作,下面列举几项常用的HTTP请求方法. 常用的HTTP请求方式是GET,POST,HEAD
 HTTP的状态码(编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |