http基础

  1. 概述
    1. 传输层:提供进程地址
      1. Port number:
        1. tcp:传输控制协议,面向连接的协议;通信前需要建立虚拟链路;结束后拆除链路;

0-65535

  1. udp:User Datagram Protocol,无连接的协议;

0-65535

  1. IANA:
    1. 0-1023:众所周知,永久的分配给固定的应用使用,特权端口,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
    2. 1024-41951:亦为注册端口,但要求并不是特别严格,分配给程序注册为某应用使用,11211/tcp, 11211/udp (memcached), 3306/tcp(mysql)
    3. 41952+:客户端程序随机使用的端口;动态端口,或私有端口;其范围的定义:/proc/sys/net/ipv4/ip_local_port_range
  1. Socket: IPC的一种实现,允许位于不同主机(甚至同一主机)上不同进程之间进行通信;数据交换;Socket API, 1983年,4.2 BSD,其实就是ip+端口,mac是物理地址ip是网络地址端口是应用程序地址

SOCK_STREAM:tcp套接字

SOCK_DGRAM:udp套接字

SOCK_RAW: 裸套接字

  1. IPv4:
    1. 分类:

A:1-127

B:128-191

C:192-223

D:组播,224-239

E:240-254

  1. 私有地址:

A:10.0.0.0/8

B:172.16.0.0/16-172.31.0.0/16

C:192.168.0.0/24-192.168.255.0/24

  1. TCP协议的特性:

建立连接:三次握手

将数据打包成段:校验和(CRC-32)

确认、重传以及超时:

排序:逻辑序号

流量控制:滑动窗口算法

拥塞控制:慢启动和拥塞避免算法

  1. Socket Domain(根据其所使用的地址):

AF_INET:Address Family,IPv4

AF_INET6:IPv6

AF_UNIX:同一主机上不同进程之间通信时使用;

每类套接字都至少提供了两种socket:流,数据报

流:可靠地传递、面向连接、无边界;

数据报:不可靠地传递、有边界、无连接;

  1. 套接字相关的系统调用:

socket(): 创建一个套接字;

bind():绑定

listen():监听

accept():接收请求

connect():请求连接建立

write():发送

read():接收

send(), recv(), sendto(), recvfrom()

  1. http协议基础

hyper text transfer protocol, 80/tcp

  1. html: 编程语言,超文本标记语言;

<html>

<head>

<title>TITLE</title>

</head>

<body>

<h1></h1>

<p> blabla… <a href=”http://www.magedu.com/logo.jpg”> blabal </a> </p>

<h2></h2>

</body>

</html>

CSS: Cascading Style Sheet

js: javascript

  1. MIME: Multipurpose Internet Mail Extesion
  1. 工作机制:

http请求

http响应

  1. Web资源:web resource

静态文件:.jpg, .gif, .html, .txt, .js, .css, .mp3, .avi

动态文件:.php, .jsp,

  1.     媒体:

媒体类型(MIME类型):major/minor

text/html

text/plain

image/jpeg

image/gif

  1. URI: Uniform Resource Identifier

URL: Uniform Resorce Locator,用于描述某服务器某特定资源的位置;

Scheme://Server:Port/path/to/resource

http://www.magedu.com/images/logo.jpg

URN: Uniform Resource Naming

http协议和httpd的配置

  1. URL:Unifrom Resource Locator

URL方案:scheme

服务器地址:ip:port

资源路径:

http://www.magedu.com:80/bbs/index.php,

https://

  1. 基本语法:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

  1. params: 参数

http://www.magedu.com/bbs/hello;gender=f

  1. query:

http://www.magedu.com/bbs/item.php?username=tom&title=abc

  1. frag:                    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/Installation_Guide/index.html#ch-Boot-x86

相对URL

绝对URL

  1. http协议版本:

HTTP/0.9:原型版本,功能简陋

HTTP/1.0:第一个广泛使用的版本,支持MIME

HTTP/1.1: 增强了缓存功能

spdy

HTTP/2.0:

rfc

  1. 一次完整的http请求处理过程:
    1. 建立或处理连接:接收请求或拒绝请求
    2. 接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程;
  1. 并发访问响应模型(Web I/O):
    1. 单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应;
    2. 多进程I/O结构:并行启动多个进程,每个进程响应一个请求;
    3. 复用I/O结构:一个进程响应n个请求;
    4. 多线程模型:一个进程生成N个线程,每个线程响应一个用户请求;
    5. 事件驱动:event-driven

复用的多进程I/O结构:启动多个(m)进程,每个进程响应n个请求;

  1. 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息

元数据:请求报文首部

<method> <URL> <VERSION>

Host: www.magedu.com 请求的主机名称

Connection:

  1. 访问资源:获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源;这些资源放置于本地文件系统某路径下,此路径通常称为DocRoot

/var/www/html/

images/1.jpg

http://www.magedu.com/images/1.jpg

web服务器资源路径映射方式:

(a) docroot

(b) alias

(c) 虚拟主机docroot

(d) 用户家目录docroot

  1. 构建响应报文

资源的MIME类型:

显式分类

魔法分类

协商分类

URL重定向:

                web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径;

  1. 发送响应报文
  1. 记录日志
  1. 服务器
    1. 服务器程序:

httpd (apache)

nginx

lighttpd

  1. 应用程序服务器:

IIS

tomcat, jetty, jboss, resin

webshpere, weblogic, oc4j

www.netcraft.com

  1. httpd的安装配置和使用:

httpd: apache

a patchy server = apache

ASF: apache software foundation

  1. httpd的特性:
    1. 高度模块化:core + modules
    2. DSO: Dynamic Shared Object
    3. MPM:Multipath Processing Modules
      1.     prefork:多进程模型,每个进程响应一个请求;

一个主进程:负责生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求;即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达;最大不会超过1024个;

  1. worker:多线程模型,每个线程响应一个请求;

一个主进程:生成多个子进程,每个子进程负责生个多个线程,每个线程响应一个请求;m进程,n线程:m*n

  1. event:事件驱动模型,每个线程响应n个请求;

一个主进程:生成m个子进程,每个进程直接n个请求;

m*n

httpd-2.2: event为测试使用

httpd-.24:event可生产使用

  1. httpd的功能特性:
    1. 虚拟主机:IP、Port、FQDN
    2. CGI:Common Gateway Interface,通用网关接口;
    3. 反向代理
    4. 负载均衡
    5. 路径别名
    6. 丰富的用户认证机制

basic

digest

  1. 支持第三方模块
博客
32132
07-14 500
07-12 405
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值