http协议介绍及httpd特性详解

http: Hyper Text Transfer Protocol

传输文本:HTML

设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法

html: Hyper Text Mark Language

html文本框架:

<html>

<head>

<title>TITLE</title>

</head>

<body>

<h1>H1</h1>

<p></p>

<h2>H1</h2>

<p> <a href="admin.html">ToGoogle</a> </p>

</body>

</html>

css: Cascading Style Sheet

html文档的生成方式:

静态:

动态:编程语言编写的程序可输出html格式的结果

php, jsp, asp .net

依赖脚本解释器:

php: php解释器

jsp: jvm

http协议报文:

request:

请求不同html文档

response:

C/S

C:User Agent//用户代理, Browser

S: Server

http协议:

http 0.9

http 1.0

MIME: Multipurpose Internet Mail Extesions

http 1.1

http 2.0

spdy

web服务器:

理解用户请求的资源格式不仅仅是纯html格式的文档

静态资源

动态资源:

application/php

web资源:

资源类型:MIME

major/minor

text/html

text/plain

image/jpeg

image/gif

vedio/mpeg4

application/vnd.ms-powerpoint

资源名称:URI(统一资源标识符) (Uniform Resource Idnentifier)

URL(统一资源定位符):

描述一个特定服务器上某资源的特定位置

http://www.magedu.com:80/download/bash-4.3.1-1.rpm

分为三部分:

scheme(方案):http://

服务器:www.magedu.com:80

特定服务器上的资源:/download/bash-4.3.1-1.rpm

CGI:Common Gateway Interface

简化版的http

http事务:一次请求及对应的响应

http方法:

GET:请求获取一个资源,需要服务器发送

HEAD:跟GET近似,但其不需要服务响应请求的资源,而返回响应首部

POST:基于HTML表单向服务器提交数据,服务器通常需要存储此数据;(位置:通常为关系型数据库)

PUT:与GET相反,向服务器发送资源;服务器通常需要存储此资源;(位置:通常为文件系统)

DELETE:删除URL指向的资源

OPTIONS:探测服务器端对请求的URL所支持使用的请求方法

TRACE:跟一次请求中间所经过的代理服务器、防火墙或网关等

http状态码:

1XX:信息性状态码

2XX:成功状态码

200:OK。请求已成功,请求所希望的响应头或数据体将随此响应返回。

201:CREATED。请求已经被实现,而且有一个新的资源已经依据请求的需要建立,且其URI已经随Location头信息返回。

3XX: 重定向类的状态码

301: Moved Permanently, 永久重定向

302: Found, 临时重定向,会在响应报文中使用“Location: 新位置”;

304: Not Modified

4XX:客户端类错误

403:Forbidden //请求被拒绝

404: Not Found

405: Method Not Allowed //不允许运用该方法请求本资源

5XX:服务器类的错误

500:Internal Server Error, 服务器内部错误

502:Bad Gateway, 代理服务器从上游服务器收到一条伪响应;

503:Service Unavailable, 服务暂时不可用

http协议:协议首部

Name: Value

Content-Type: images/gif

分三类:

通用首部

请求首部

响应首部

http请求报文:

<method> <request-URL> <version>

<HEADERS>

<entity-body>

http响应报文:

<version> <status> <reason-phrase>

<HEADERS>

<entity-body>

解释:

<method>:请求方法

<request-URL>: 请求的资源,可以是相对路径,如/images/log.jpg,也可以绝对路径,如http://www.magedu.com/images.banner.jpg

<version>: http协议版本,格式HTTP/<major>.<minor>,例如HTTP/1.0, HTTP/1.1

<headers>:各种所可以使用的首部

<status>: 状态码

<reason-phrase>: 原因短语,指状态码的易读信息

注意:http协议是无状态,stateless

cookie:

Set-Cookie

Set-Cookie2

Cookie:

回顾:

http事务:

web资源:URL

scheme://server:port/path/to/resource

http方法:GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE

http状态码:403, 404, 301, 302, 304, 502

http协议报文:

请求:

<method> <request-URL> <version>

<HEADERS>

<entity-body>

响应:

<version> <status> <reason-phrase>

<HEADERS>

<entity-body>

http协议:无状态

http协议版本:

http 0.9: 仅用于传输html文档

http 1.0:引入MIME机制,从而支持多媒体数据;引入keep-alive(持久连接);缓存

http 1.1:更多请求方法,更精细缓存控制;持久连接(persistent);

1.2、http协议首部

通用首部

请求首部

响应首部

实体首部:表明实体类型和属性

扩展首部:非标准首部,可由程序员自行创建;X-Forward-For, X-Via

1.2.1、通用首部

Connection: 定义C/S之间关于请求、响应的有关选项

Connection: keep-alive

Cache-Control: 缓存控制

1.2.1、请求首部

Client-IP:

Host: 请求的主机

Referer: 指明了请求当前资源原始资源的URL

User-Agent: 用户代理

Accept首部:

Accept: 服务端能够发送的媒体的类型

Accept-Charset:

Accept-Encoding:

Accept-Language:

条件式请求:

跟安全相关请求:

Authorization:

Cookie:

1.2.3、响应首部

Age:

Server: 向客户说明自己的程序名称和版本

协商首部:

Vary: 首部列表,服务器会根据列表中的内容挑一个最适用的版本发送给客户端

跟安全相关:

WWW-Authentication:

Set-Cookie

1.2.4、实体首部

Location: 资源的新位置

Allow: 允许对此资源使用的请求方法

内容相关的首部:

Content-Encoding:

Content-Language:

Content-Length:

Content-Location:

Content-Type:

缓存相关:

ETag

Expires

Last-Modified:

1.3、一次Web资源请求的具体过程(服务器的角度)

1.3.1 服务过程

建立连接

接收请求

处理请求

访问资源

构建响应

发送响应

记录日志

连接:

连接套接字:(client, cport <--> server, sport)

监听套接字:80端口

1.3.2、web服务器的I/O结构

单进程模型:串行

多进程模型:每个进程响应一个用户请求实现并发的效果

复用的I/O机制:一个进程生成多个线程,每个线程响应一个用户请求

复用的I/O机制:多个线程,每个线程响应多个用户请求;

1.3.3、web server

httpd

httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。Apache是世界使用排名第一的Web服务器软件

nginx

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。

lighttpd

gws

App Server: (Web 应用服务器)

IIS

tomcat, jetty, resin

weblogic

websphere

httpd:

ASF: Apache Software Fundation

httpd,

a patchy server = apache

httpd,

1.3.4、httpd的特性

高度模块化:core + modules

DSO: Dynamic Shared Object

MPM:Multipath Processing Module//多道处理模块

统称,事实上有多个实现:

prefork: 每个进程响应一个用户请求,预先生成多个空闲进程;

select():1024 //并发能力上限

worker: 启动多个进程,每个进程生成多个线程,每个线程响应一个用户请求;

event: 启动多个线程,每个线程响应N个请求;

event-driven:事件驱动

httpd的功能特性:

丰富用户认证:基本认证和摘要认证

CGI:原生支持perl CGI

//通用网络接口,是外部应用程序与WEB服务器之间的接口标准,是两者之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

虚拟主机:

基于端口、IP、主机名

反向代理:

负载均衡

用户站点:

路径别名:

支持第三方模块

安装方式:

rpm包

源码编译

时间: 2024-10-11 04:20:53

http协议介绍及httpd特性详解的相关文章

http协议及httpd特性详解

前言 随着互联网的迅猛发展和网络的普及,各类网站层出不穷,网站也成为企业宣传和实力展现的主要途径之一,说到网站就不得不说一下web服务了,现在比较流行的web服务还是当属Apache即httpd.本文将详解http协议及httpd的特性. http协议详解 http协议 http: Hyper Text Transfer Protocol 超文本传输协议 传输文本:HTML html: Hyper Text Mark Language 超文本标记语言 html文档的生成方式 静态:纯html格式

HTTPD服务详解

HTTPD服务详解 目录 一.httpd的程序版本 二.httpd的特性 三.httpd的功能特性 四.httpd使用 1.httpd的安装 2.程序环境 Httpd-2.2 (Centos6) http-2.4 (Centos7) 五.http配置相关说明 1.修改监听的ip和port 2.持久连接 3.MPM 4.DSO配置指令模块加载 5.定义Main'server文档页面路径 6.站点访问控制 文件系统路径 URL路径 7.<Directory> 中基于源地址实现访问控制 Option

iOS开发——高级特性&amp;Runtime运行时特性详解

Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 Runtime术语 消息 动态方法解析 消息转发 健壮的实例变量(Non Fragile ivars) Objective-C Associated Objects Method Swizzling 总结 引言 曾经觉得Objc特别方便上手,面对着 Cocoa 中大量

Apache的httpd命令详解

Apache的httpd命令详解 来源:全栈开发者 发布时间:2012-01-03 阅读次数:10965 4 httpd.exe为Apache HTTP服务器程序.直接执行程序可启动服务器的服务.本文以Apache2.2.21版本为例详细介绍该指令的各个参数及用法. 语法格式: httpd [-D name] [-d directory] [-f file]         [-C "directive"] [-c "directive"]         [-w]

c#特性详解【含常用过滤器实例】

基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗------接口详解 基础拾遗------泛型详解 前言 本来7月份想着是用一个月把基础拾遗写完的,结果断断续续写了4个月了,才写了这几篇,这两天又规划着多写几篇,希望能坚持吧.两天一次和同事聊天竟然好多人都不知道,他们每天却都在用. 1.特性概念 特性(Attribute)是用于在运行时传递程序中各种元素(

Httpd.conf详解

Apache 的 httpd.conf 详解 ## Apache服务器主配置文件. 包括服务器指令的目录设置.# 详见 <URL:http://www.apache.org/docs/> ## 请在理解用途的基础上阅读各指令.## 再读取此文档后,服务器将继续搜索运行# E:/Program Files/Apache Group/Apache/conf/srm.conf # E:/Program Files/Apache Group/Apache/conf/access.conf# 除非用Re

搞懂分布式技术4:ZAB协议概述与选主流程详解

搞懂分布式技术4:ZAB协议概述与选主流程详解 ZAB协议 ZAB(Zookeeper Atomic Broadcast)协议是专门为zookeeper实现分布式协调功能而设计.zookeeper主要是根据ZAB协议是实现分布式系统数据一致性. zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步.这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事物请求(或写操作),然后leader服务器将客户端的写操作数据同步

httpd 安装详解(待更新)

httpd 安装详解 安装httpd: rpm包:CentOS发行版中直接提供 编译安装:定制新功能,或其它原因 安装方式: yum install httpd CentOS 6:httpd-2.2 程序环境: 配置文件: /etc/httpd/conf/httpd.conf/httpd /etc/httpd/conf.d/*.conf 服务脚本: /etc/rc.d/init.d/httpd 脚本配置文件:/etc/sysconfig/httpd 主程序文件: /usr/sbin/httpd

Servlet 3.0 新特性详解

转自:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性详解 张 建平2010 年 4 月 23 日发布 WeiboGoogle+用电子邮件发送本页面 6 Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署.其