菜鸟学Linux 第051篇笔记 web-server, http

简介:

菜鸟学Linux 第051篇笔记  web-server, http





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


超链接:


web

http version 0.9  纯文本(超链接), ASCII

HTML HyperText Mark Language

URI Uniform Resource Indentifier 统一资源标识符

统一:路径格式上的统一

URL Uniform Resource Locator

protocol://HOST:port/path/to/file

web资源 = web对象

多个资源很可能被整合为一个html文档

http方法:

http version 0.9  get

http version 1.0 put post delete head 等等

MIME (Multipurpose Internet Mail Extension) 多用途互联网邮件扩展

SMTP (Simple Mail Transmission protocol) 纯文本

MIME 将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新

 还原为原来的格式,还能够调用相应的程序来打开此文件

 Base64 一种文本编码格式

 

 

动态效果

java Applet, JRE  重量级



动态网页 服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本接受

 参数之后在服务器运行一次,运行完成之后生成HTML格式的文档,把生

 成的文档发送给客户端

 

web index.php

web server --> protocol --> php解释器 (运行index.php) --> 生成html文档

index.html

可以引用N个对象,url

动态网页: 包含静态内容和动态内容

动态内容部分才运行

http 报文  请求报文 、 响应报文

请求报文

<method> <request-URL> <version>

<headers>

<entity-body>

响应报文

<version> <status> <reason-phrase>

<headers>

<entity-body>

状态代码: <status>

1xx 纯信息

2xx "成功"类信息 (200, 201, 202...)

3xx 重定向类信息 (301, 302, 304...)

4xx 客户端错误类信息 (404)

5xx 服务器端错误类信息



e.g.

请求报文

GET / HTTP/1.1

HOST: www.mysky.com

connection: keep-alive

响应报文

HTTP/1.1 200 OK

X-Powered-By: PHP/5.2.17

Very: Accept-Encoding,Cookie,User-Agent

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

Content-Encoding: gzip

Content-Length: 6931

web服务器的主要操作

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

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

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

4、访问资源——访问请求报文中相关的资源;

5、构建响应——使用正确的首部生成HTTP响应报文;

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

7、记录日志——将已经完成的HTTP事务记录进日志文件;


http, tcp 三次握手,四次断开

http/1.1

增强了缓存的功能

长连接


Server 并发响应模型

单进程、单线程

多进程、多线程 (稳定、并发能力比前者增强但进程太多占据内存大)

单进程、多请求

多进程、多请求

httpd:MPM

prefork

work

event

web c/s

c: Client Agent (browser, spider)

S: Server 

Client-->request-->Server

URL

Http method: GET HEAD POST PUT DELETE TRACE OPTIONS CONNECTION

HTTP headers

name:value

HOST:www.mysky.com

connection:keep-alive

Server-->response-->Client



Client 

IE

Firefox

Chrome

Opera

Safari

Server

Apache --> httpd

IIS 应用程序服务器

nginx

lighttd

thttpd


应用程序服务器

IIS

tomcat (apache, JSP, opensource)

Websphere (IBM,JSP,商业)

Weblogic (Oracle,JSP,商业)

JBoss (RedHat)


www.netcraft.com 

互联网数据调研

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1883559如需转载请自行联系原作者


Winthcloud

相关文章
|
3天前
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
18 0
|
4天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
1月前
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
49 0
|
1月前
|
安全 Linux 网络安全
Linux使用HTTP隧道代理代码示例模版
Linux使用HTTP隧道代理代码示例模版
19 0
|
1月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
164 0
|
1月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
|
3天前
|
Linux Android开发
Linux(6)CH9434 SPI调试笔记
Linux(6)CH9434 SPI调试笔记
12 0
|
10天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
18 1
|
20天前
|
Linux API C语言
FFmpeg开发笔记(一)搭建Linux系统的开发环境
本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
37 8
FFmpeg开发笔记(一)搭建Linux系统的开发环境
|
21天前
|
资源调度 JavaScript 安全
Linux系统之部署web-check网站分析工具
【4月更文挑战第3天】Linux系统之部署web-check网站分析工具
67 9