http简要记录

一、http(超文本传输协议)

由html文件 ->包含各种各样的元素(URL链接)->web页面

二、URL结构

http:// www.qq.com:80 /news/index.html

协议 域名: 端口 具体的文件名下面的某个页面

三、http的工作原理

1.客户端发起dns请求

2.获取到域名对应的IP地址

3.浏览器发起TCP的连接

4.基于TCP的连接,传输http的请求(一次TCP的连接,可以建立多次的http请求)

5.浏览器请求/index.html

6.服务器响应/index.html至浏览器

7.浏览器翻译index.html中的内容为人类可读

8.断开TCP连接-->四次挥手

http的短连接:建立一次tcp的连接,发起一次http的请求,结束,tcp断开

http的长连接:建立一次tcp的连接,发起多次http的请求,结束,tcp断开

四、http的请求方法

方法 描述 请求 响应
GET 用来请求访问已被URI识别的资源 指定的资源经服务器端解析后返回响应内容 GET /index.html HTTP/1.1 Host: www.baidu.com 返回index.html的页面资源
POST 用来传输实体的主体 虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法 虽说POST的功能与GET相似,但POST的主要目的并不是获取响应的主体内容 POST /submit.cgi HTTP/1.1 Host: www.baidu.com Content-Length: 1500(1500字节的数据) 返回submit.cgi接收数据的处理结果
PUT 用来传输文件 就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件的内容,然后保存到请求URI指定的位置 PUT /example.html HTTP/1.1 Host: www.baidu.com Content-Type: text/html Content-Length: 1560(1560字节的数据) 响应返回状态吗 204 No Content(比如:该html已存在于服务器上)
HEAD 用于确认URI的有效性及资源更新的日期时间等,和GET方法一样,只是不返回报文主体部分 HEAD /index.html HTTP/1.1 Host: www.baidu.com 返回index.html有关的响应头部
DELETE 用来删除文件,是与PUT 相反的方法 按请求URI删除指定的资源 DELETE /example.html HTTP/1.1 Host: www.baidu.com 响应返回状态吗 204 No Content(比如:该html已存在于服务器上)
OPTIONS 用来查询针对请求URI指定的资源支持的方法 OPTIONS * HTTP/1.1 Host: www.baidu.com HTTP/1.1 200 OK Allow: GET,POST,HEAD,OPTIONS(返回服务器支持的方法)
TRACE 让web服务器端将之前的请求通信环回给客户端的方法 发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务端就将该数字减1,当数值刚好剑到0时就停止持续传输,最后接收到请求的服务端则返回状态码 200 OK 的响应 TRACE /HTTP/1.1 Host: www.baidu.com Max-Forwards: 2 HTTP/1.1 200 Ok Content-Type: message/http Content-Length: 1024 TRACE / HTTP/1.1 Host: www.baidu.com Max-Forwards: 2(返回响应包含请求内容)
CONNECT 要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信,主要使用SSL和TLS协议把通信内容加密后经网络隧道传输 CONNECT proxy.sample.com:8000 HTTP/1.1 Host: proxy.sample.com HTTP/1.1 200 OK(之后进入网络隧道)

五、常见http的响应状态码(以3位数字组成)

状态码 说明
200 成功
301 永久重定向
302 临时重定向
304 浏览器缓存
401 权限认证失败
403 请求不到首页,权限被拒绝
404 资源找不到
500 服务器内部错误
502 错误的网关,找不到后端资源
504 请求超时

六、用户访问网站携带的参数,以及服务端返回的参数

概况

字段 说明
Request URL: http://www.abc.com/index.html 请求的URL地址
Request Method: GET 请求的方法(获取)
Status Code: 304 Not Modified 返回的状态
Remote Address: www.abc.com:80 请求的地址

客户端请求的头部信息

字段 说明
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.abc.com 请求的域名
If-Modified-Since: Fri, 05 May 2019 09:33:22 GMT 修改的时间
If-None-Match: "a49-56b5ce607fe00" 标记
Upgrade-Insecure-Requests:1 在http和https之间起的一个过渡作用
User-Agent: Mozilla/5.0 用户的浏览器
请求一个空行

服务端响应的头部信息

字段 说明
HTTP/1.1 304 Not Modified 返回服务器的http协议,状态码
Date: Fri, 15 Sep 2018 09:15: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" 验证客户端标记
返回一个空行
xxx 返回页面内容

七、PV、UV、IP

PV:页面浏览量

UV:独立的客户

IP:独立IP

示例说明

公司有100人,每个人有一台电脑一个手机,上网都是通过nat转换出口,每个人点击网站2次(假设点击一次返回的pv是1)

PV:400

UV:200

IP:1个

八、用户访问网站的大体流程

1.客户端输入域名以及请求的页面

2.解析域名对应的dns

3.最终客户端浏览器获取到dns的IP地址

4.客户端会与服务端发起TCP的三次握手(长连接)

5.客户端发起http请求,请求会先抵达前端的防火墙

6.防火墙识别用户身份,正常的请求通过内部交换机通过TCP连接前端的负载均衡,然后传递用户的http请求

7.负载接收到请求,会根据请求的内容进行下发任务,通过TCP连接后端的web,然后下发用户的http请求

8.web接收到用户的http请求后,会根据用户请求的内容进行解析,解析分为如下两步:

​ 静态请求:由web服务器向nfs建立TCP连接,获取对应的图片,最后返回给负载均衡(负载均衡->防火墙->用户)

​ 动态请求:由web向后端的动态程序建立TCP连接,将用户的动态http请求传递给动态程序->由动态程序进行解析

9.动态程序在解析的过程中,如果碰到查询数据库的请求,则优先和缓存建立TCP的连接,然后缓存服务发起http的查询

10.如果缓存没有对应的数据,动态程序再次向数据库建立TCP的连接,然后发起查询操作

11.由数据库返回->动态程序->缓存->web服务->负载均衡->防火墙->用户

泡泡吐肥皂o © gitbook.pptfz.top 2021 all right reserved,powered by Gitbook文件修订时间: 秃笔南波湾!!!

results matching ""

    No results matching ""