nginx基础http协议

Nginx基础Http

Http协议介绍

http全称HyperText Transfer Protocol中文名为超文本传输协议

1.什么是超文本?

包含有超链接(Link)和各种多媒体元素标记的文本。这些超文本文件彼此链接,形成网状(Web),因此又被称为网页(Web Page)。这些链接使用URL表示。最常见的超文本格式是超文本标记语言HTML。

2.什么是URL

3.什么是超文本传输协议HTTP?

是一种按照URL指示,将超文本文档从一台主机(Web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能。

4.http协议总结

1.http是一个超文本传输协议
2.http建立在应用层协议基础之上
3.http默认端口80, https默认端口443
4.一次tcp的链接,可以包含多次http的请求

Http工作原理

1.本地会进行一次redirect跳转
2.先查看本地缓存如果没有再发起dns请求
3.获取到域名对应的IP地址
4.浏览器发起tcp的连接
5.基于tcp的连接,传输http的请求(一次tcp的连接,可以建立多次的http请求)
6.浏览器请求/index.html
7.服务器响应/index.html至浏览器
8.浏览器翻译index.html中的内容为人类可读
9.断开TCP的四次挥手

Http请求报文

1.http请求报文的方法

get     # 获得请求文件信息的数据内容(获取)
post    # 用户提交数据至服务器端存储(提交)

Request URL:http://10.0.0.7/index.html # 请求的URL
Request Method:GET                     # 请求的方法
Status Code:200 OK                     # 当前的状态
Remote Address:10.0.0.7:80             # 远程的主机

2.客户端请求报文的头部信息示例
Accept: text/html,                                  # 请求的类型
Accept-Encoding: gzip, deflate                      # 是否进行压缩
Accept-Language: zh-CN,zh;q=0.9                     # 请求的语言
Cache-Control: max-age=0                            # 缓存
Connection: keep-alive                              # TCP长连接
Host: www.oldboyedu.com                              # 请求的域名
If-Modified-Since: Fri, 04 May 2018 08:13:44 GMT    # 修改的时间
If-None-Match: "a49-56b5ce607fe00"                  # 标记
Upgrade-Insecure-Requests:1                         # 在http和https之间起的一个过渡作用
User-Agent: Mozilla/5.0                             # 用户的浏览器
===========请求一个空行=========================

Http响应报文

http响应(响应报文中的状态码)

1.状态码(Status-Code)是响应报文状态行中包含的一个3位数字,指明特定的请求是否被满足,如果没有满足,原因是什么。状态码分为以下五类:
    200         ok                     # 访问正常
    301     redirect                   # 永久重定向
    302     redirect                   # 临时重定向
    304         Not Modified           # 客户端缓存
    403     Forbidden                  # 服务端权限问题
    404     Not Found                  # 页面不存在
    500     Internal Server Error      # 权限、代码、php服务
    502     Bad Gateway                # 请求后端服务失败
    504     Gateway Timeout            # 网关超时

2.服务端响应报文的头部信息示例

HTTP/1.1 304 Not Modified                 # 返回服务器的http 协议,状态码
Date: Fri, 14 Sep 2018 09:14:28 GMT       # 返回服务器的时间
Server: Apache/2.4.6 (CentOS) PHP/5.4.16  # 返回服务器使用的软件(Apache php)
Connection: Keep-Alive                              # TCP长连接
Keep-Alive: timeout=5, max=100                      # 长连接的超时时间
ETag: "a49-56b5ce607fe00"                           # 验证客户端标记
===========返回一个空行=========================
===========返回内容页面=========================

Http相关术语

环境: 如果一栋大厦里所有工作人员通过1个IP公网接口上网, 每个人有一个电脑和一部手机, 当所有人同时请求一个网站, 并且刷新了2次, 那么请求pv、ip、uv分别是多少

pv:页面浏览量 400      PV:页面浏览量
uv:唯一设备 200        uv:独立的客户
ip:唯一出口 1          ip:独立IP           
并发

A种理解:网站服务器每秒能够接收的最大用户请求数。
B种理解:网站服务器每秒能够响应的最大用户请求数。
C种理解:网站服务器在单位时间内能够处理的最大连接数。(推荐)

网站访问流程

    1.客户端输入域名以及请求的页面
    2.本地会进行一次redirect跳转
    3.解析域名对应的dns
    4.最终客户端浏览器获取到dns的IP地址
    5.客户端会与服务端发起TCP的三次握手(长连接)
    6.客户端发起http请求,请求会先抵达前端的防火墙
    7.防火墙识别用户身份,正常的请求通过内部交换机通过tcp连接后端的负载均衡,然后           传递用户的http请求
    8.负载接收到请求,会根据请求的内容进行下发任务,通过tcp连接后端的web,然后下           发用户的http请求
    9.web接收到用户的http请求后,会根据用户请求的内容进行解析,解析分为如下两             步:
    静态请求:由web服务器向nfs建立tcp连接,获取对应的图片,最后返回给负载均衡(负                载均衡->防火墙->用户)
    动态请求:有web向后端的动态程序建立TCP连接,将用户的动态http请求传递给动态程                序->由动态程序进行解析
    10.动态程序在解析的过程中,如果碰到查询数据库的请求,则优先和缓存建立tcp的连            接,然后缓存服务发起http的查询
    11.如果缓存没有对应的数据,动态程序再次向数据库建立tcp的连接,然后发起查询操            作。
    12.由数据库返回->动态程序->缓存->web服务->负载均衡->防火墙->用户。

综合架构图:

原文地址:http://blog.51cto.com/13528471/2175606

时间: 2024-08-29 17:15:38

nginx基础http协议的相关文章

Nginx基础笔记

Nginx基础笔记 资源 安装 ubuntu下 编译安装 基本操作 HTTP基本配置 配置说明 配置文件目录结构 配置文件结构 模块 模块化 index模块 Log模块 Real IP模块 Access模块 Rewrite模块 Proxy模块 upstream模块 其他 配置静态化目录 负载均衡 控制页面缓存 nginx的内置变量 nginx小结 资源 资源 Nginx 官网 Nginx 官方下载地址 Nginx最佳实践配置项目 地址 Nginx Configuration wiki 教程 ag

nginx基础及其相关配置

nginx基础 Nginx的基本架构 一个master主进程,生成一个或多个worker子进程 事件驱动 epoll(边缘触发),用于Linux kqueue:用于BSD /dev/poll: IO复用器:select.poll.rt signal 支持sendfile及sendfile64 支持AIO 支持mmap 名词解释: sendfile机制:正常响应报文路径"内核空间-->用户空间-->内核空间-->客户端",如果报文在用户空间不做任何改变时,路径不再经由用

手把手教你nginx基础安装配置

手把手教你nginx基础安装配置! 一.Nginx安装及简单配置: 安装环境和依赖的包: #yum groupinstall "developmenttools" "server platform development" # yum -yinstall pcre-devel #yum install openssl-devel 下载相关nginx源码包: #wgethttp://nginx.org/download/nginx-1.6.2.tar.gz 解压缩源码

NGINX基础(一)

NGINX基础 ============================================================================ 概述: Nginx介绍 ★engineX = Nginx NGINX is a free, open-source,high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxyserver. (NGINX是一个免费.开源.高性能的HTT

nginx基础到进阶(二)

Nginx相关配置 =============================================================================== 概述: 本篇我们将继续上一篇的话题,来介绍Nginx的相关配置 回顾: Nginx安装之rpm包 过程如下:   1.在Nginx官方网点下载适合的nginx rpm包到本地,这里是我下载的rpm包: nginx-1.10.0-1.el7.ngx.x86_64.rpm 2.在当前nginx包的所在目录中执行yum in

nginx搭建rtmp协议流媒体服务器总结

最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx目录. 然后进入该目录去下载搭建环境所需要的一些资源包. 此处在 /root/  目录下新建一个nginx目录即: /root/softsource/ 注意:依赖包和工具包需要下载,请在良好的网络环境下安装,否则在网速不好的情况下容易下漏掉,造成后面安装失败 ====================

【Nginx】Nginx基础架构

一.Nginx的架构设计 1)优秀的模块化设计 2)事件驱动架构 事件驱动架构是指由一些事件发生源来产生事件,由一个或多个事件收集器来收集.分发事件,然后许多事件处理器会注册自己感兴趣的事件,同时会消费这些事件. 对于Nginx而言,一般会由网卡.磁盘产生事件,事件模块将负责事件的收集.分发操作,而所有的模块都可能是事件消费者. Nginx采用完全的事件驱动架构来处理业务.对于传统web服务器而言,事件驱动往往局限在TCP链接建立.关闭事件上,一个连接建立以后,在其关闭之前的所有操作逗不再是事件

Nginx基础教程PPT

Nginx基础教程PPT By 马冬亮(凝霜  Loki) 一个人的战争(http://blog.csdn.net/MDL13412) pdf版本下载 Nginx基础教程PPT

nginx基础知识

参考博客: http://www.2cto.com/os/201212/176520.html http://os.51cto.com/art/201111/304611.htm http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html Nginx.conf学习 #定义Nginx运行的用户和用户组 user www www: #nginx进程数,建议设置为等于CPU总核心数 worker_processes 8; #