HTTP-----HyperText Transfer Protocol超文本传输协议

http/0.9:仅纯文本(超链接),ASCII

HTML:HyperText Mark Language

URI:Uniform Resource Idetnifier,统一资源标识符

统一:路径格式上的统一

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

protocol://Host:Port/path/to/file

HTTP方法:获取web资源/对象的方法

http/0.9: GET

http/1.0: PUT, POST, DELETE, HEAD

http/1.0引入MIME机制

MIME:Multipurpose Internet Mail Extension,多用途互联网邮件扩展

将非文本数据在传输前重新编码为文本格式再传输,接收方能够用相反的方式将其还原成以前的格式,还能够调用相应的程序打开此文件

缓存机制

动态网页:

服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本在接受参数后在服务器运行一次,运行完成后会生成HTML文档,把生成的文档发给客户端

包含静态内容(图片等)和动态内容

动态内容才需要运行

HTTP报文:请求报文、响应报文

HTTP请求报文语法:

<method><request-URL><version>

<headers>

<entity-body>

HTTP响应报文语法:

<version><status><reason-phrase>

<headers>

<entity-body>

状态代码:

1xx:纯信息

2xx:成功类信息

3xx:重写向类信息

301:永久重定向

302:临时重定向

304:not-modified,使用缓存的内容响应客户端

4xx:客户端错误类信息

5xx:服务器端错误类信息

请求报文:

GET / HTTP/1.1

Host: www.bj.com

Connection: keep-alive

响应报文:

HTTP/1.1  200  OK

X-Powerd=By: PHP/5.2.17

Vary: Accept-Encoding,Cookie,User-Agent

Cache-Control: max-age=3,must-revalidate

Content-Encoding: gzip

Content-Length: 6931

上面两个报文的第一行通常称为报文的"起始行(start line)";后面的标签格式称为报文首部域(Header field),每个首部域都由名称(name)和值(value)组成,中间用逗号分隔。另外,响应报文通常还有一个称作Body的信息主体,即响应给客户端的内容

web服务器的主要操作:

1、建立连接----接受或拒绝客户端连接请求

2、接收请求----通过网络读取HTTP请求报文

3、处理请求----解析请求报文并做出相应的动作

4、访问资源----访问请求报文中所请求的资源

5、构建响应----使用正确的商务部生成HTTP响应报文

6、发送响应----向客户端发送生成的响应报文

7、记录日志----当已经完成的HTTP事务记录进日志文件

HTTP/1.1

增强了缓存机制的管理

长连接机制

超时时间

每个长连接请求文件个数的限制

web服务器响应多个请求的方式:

1、单进程/单线程机制

依次处理每个请求

2、多进程/多线程机制

每个请求生成子进程响应

3、一个进程响应多个请求

事件驱动机制

通知机制

4、多进程响应多个请求

软件介绍

客户端代理软件

IE, firefox, chroome, opera, safari

服务器端软件

httpd, nginx, lighttpd, IIS, thttpd, tengine

应用程序服务器

IIS, Tomcat(JSP,open source), Websphere(IBM,JSP,commodity), Weblogic(Oracle,JSP,commodity)

JBoss(redhat,JSP)

httpd安装及配置

ASF:Apache Software Foundation

web: httpd

Tomcat

Hadoop

httpd:

Web Server, Open Source

2.4, 2.2, 2.0

httpd特性:

事先创建进程

按需维持适当的进程

模块化设计,核心较小,各种功能都能通过模块添加;模块可以在运行时启用

支持运行配置,支持单独编译模块

支持多种虚拟主机的配置

基于IP的虚拟主机

基于端口的虚拟主机

基于域名的虚拟主机

支持https协议(mod_ssl)

支持用户认证

支持基于IP或主机名的访问控制机制

支持每目录的访问控制

支持URL重写

RedHat(httpd):

rpm软件

源码编译

httpd:

/usr/sbin/httpd

Master process: httpd, root root

Worker process: httpd, apache apache

/etc/init.d/httpd(script)

Port: 80/tcp, 443/tcp

Workdir: /etc/httpd

/etc/httpd/conf:配置文件目录

主配置文件:httpd.conf

/etc/httpd/conf.d/*.conf

/etc/httpd/modules:模块目录

/etc/httpd/logs---> /var/log/httpd: 日志目录

访问日志access_log, 错误日志error_log

/var/www/

html:静态页面路径

cgi-bin:提供动态内容的路径

CGI:Common Gateway Interface 通用网关接口

让web服务器启动某应用程序解析动态页面的机制

开发动态网页的语言:

perl, python, java(Servlet JSP), php

FastCGI:

事先启动解析动态页面的进程(由一个单独的master process管理),当客户端请求动态页面时,由web process将请求交给一个空间的动态解析进程完成页面解析

此种方式静态页面的响应、动态页面的请求可以分别运行在不同的服务器

httpd安装及启动

# yum install -y httpd

# /etc/init.d/httpd start

# netstat -tnlp | grep :80

tcp        0      0 :::80                       :::*                        LISTEN      2716/httpd

# ps aux | grep httpd

root      2716  0.0  0.3  11676  3424 ?        Ss   23:47   0:00 /usr/sbin/httpd

apache    2719  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

apache    2720  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

apache    2721  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

apache    2722  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

apache    2723  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

apache    2724  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

apache    2725  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

apache    2726  0.0  0.2  11676  2124 ?        S    23:47   0:00 /usr/sbin/httpd

httpd配置文件:

# grep -i "section" /etc/httpd/conf/httpd.conf

### Section 1: Global Environment

### Section 2: ‘Main‘ server configuration

### Section 3: Virtual Hosts

directive value

指令不区分大小写

value区分大小写

1、显示系统版本、IP、软件版本相关信息

ServerTokens Prod

2、服务器根目录

ServerRoot "/etc/httpd"

3、PID文件

PidFile run/httpd.pid

4、TCP 3次握手第二次连接的超时时间

Timeout 60

5、长连接相关配置

KeepAlive Off

MaxKeepAliveRequests 100

KeepAliveTimeout 15

MPM: Multi Path Module 多处理模块

定义httpd响应多个用户请求的工作模型

mpm_winnt

prefork

多进程/多线程机制,预先生成进程

一个请求用一个进程响应

httpd 2.2,默认

worker

一个进程响应多个请求,一个进程使用多个线程响应多个请求

一个请求用一个线程响应

web服务启动多个进程,每个进程生成多个线程响应多个用户请求

event

一个进程同时处理多个请求

基于事件驱动模型

httpd 2.4,默认

显示httpd支持的模块

# httpd -l

Compiled in modules:

core.c

prefork.c

http_core.c

mod_so.c

配置httpd使用worker模型

# vim /etc/sysconfig/httpd

HTTPD=/usr/sbin/httpd.worker

6、prefork模型相关属性配置

<IfModule prefork.c>

StartServers       8             //启动8个空闲进程

MinSpareServers    5 //最少空闲进程,保证最少有5个空闲进程

MaxSpareServers   20 //最大空闲进程

ServerLimit      256 //为MaxClients指定上限值, 关闭httpd服务调整

MaxClients       256 //最多同时允许256个请求连接

MaxRequestsPerChild  4000 //每个子进程最多响应4000个请求

</IfModule>

7、worker模型相关属性配置

<IfModule worker.c>

StartServers         4 //默认启动4个进程

MaxClients         300

MinSpareThreads     25 //最少空闲线程

MaxSpareThreads     75 //最大空闲线程

ThreadsPerChild     25 //每个进程可生成25个线程

MaxRequestsPerChild  0

</IfModule>

8、指定监听地址及端口

Listen 80

9、装载模块

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

10、httpd子配置文件路径及名称

Include conf.d/*.conf

11、指定运行worker process进程的用户及用户组

User apache

Group apache

时间: 2024-10-08 15:05:50

HTTP-----HyperText Transfer Protocol超文本传输协议的相关文章

HTTP协议(HyperText Transfer Protocol,超文本传输协议)

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准.HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等).:::::::::::::::::::::::::::::::::::::::::::::::::::::HTTP 简介http:/ /www.iis7.com/b/plc/HTTP协议是Hyper Text Transfer Protoco

Telnet协议,SSH协议(安全外壳协议),SSL协议(安全套接层协议),HTTPS(Hypertext Transfer Protocol Secure)安全超文本传输协议

2.Telnet协议 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序(如putty),用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法. 3.SS

超文本传输协议,http请求过程

超文本传输协议. 2.http请求过程. { 1> http协议: 超文本传输协议(Hypertext Transfer Protocol) { http协议规定了客户端和服务器之间的数据传输格式. http协议是在网络开发中最常用的协议.不管是移动客户端还是PC端,访问网络资源经常使用http协议. http优点: <1> 简单快速: http协议简单,通信速度很快. <2> 灵活: http协议允许传输任意类型的数据. <3> http协议是短连接(非持续性连

http 超文本传输协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法.1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基.Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(

http超文本传输协议,get与post区别

一:什么是http? http:超文本传输协议(HTTP,HyperText Transfer Protocol),是一个客户端和服务器端传输的标准,是应用层通信协议.客户端是中端用户,服务器端是网站,服务器上存放着很多资源文件. 通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接.HTTP服务器则在那个端口监听客户端发送过来的请求.一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息. 通常H

一个有趣的问题——HTTP是“超文本传输协议”还是“超文本转移协议”

最近在看<HTTP图解>这本书,书中提到了对国内对HTTP协议名称的翻译问题,并且给出了一些网友讨论的原稿链接,我看了一下觉得挺有意思的,另外我本人也觉得翻译对于理解协议本身非常重要,就整理了一些观点. HTTP的全称是HyperText Transfer Protocol,大家主要的关注点在于Transfer应该如何翻译. 以下是整理的内容: 李锟: 1.纸面释义 在IETF的RFC中,"transport"(传输)的含义是指:从端到端(例如从ip1:port1到ip2:

HTTP协议,超文本传输协议

HTTP协议,超文本传输协议a.Http协议现在使用的是1.1的版本b.Http协议是应用层协议,底层要求使用可靠传输协议传输数据.通常传输层协议使用Tcp协议c.Tcp协议规定两台计算机之间如何传输数据.d.HTTP协议规定传输数据的格式,以便两台计算机之间理解对方发送的内容e.HTTP协议规定了客户端与服务端之间的通讯模式必须遵循1次请求一次响应的通讯过程f.首先由客户端(谁发送请求谁就是客户端)发起请求(Request),客户端通常是浏览器.然后服务端接收并输出该请求,然后给予响应(Res

HTTP(超文本传输协议)

掌握HTTP虽然不是必须的,但是如果你知道它的工作原理,那么在学习JSP开发中的某些知识就可以易如反掌了. 一,HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用. HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][

第9章 应用层(4)_超文本传输协议HTTP

5. 超文本传输协议HTTP 5.1 统一资源定位符URL (1)URL的一般形式:<协议>://<主机>:<端口>/<路径> ①协议后面必须写上"://",不能省略: ②主机是指该主机在因特网上的域名或IP地址: ③端口和路径有时候可以省略. (2)举例 ①HTTP的URL一般形式:http://<主机>:<端口>/<路径>.其中端口默认为80,通常可省略. ②FTP的URL一般形式:ftp:// &