+++++++HTTP进阶之HTTP协议基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了+++++++HTTP进阶之HTTP协议基础相关的知识,希望对你有一定的参考价值。

URL简述

相对URL 从当前页面

绝对URL 从当前页面或其他页面跳转而来

HTTPD版本<0.9文本><1.0,method,mime,弱缓存><1.1持久连接><2.0,mime,spdy,缓存,method>

HTTPD特性:无状态、文本编码协议<telnet, curl, enlinks>

追踪用户来源的机制:cookie(重cookie,轻cookie),session

Cookie分类

Cookie工作机制: 随机数惟一标识用户

轻cookie应用: 数据结构保存cookie与session的映射

HTTP事务: 一次请求和响应

事务元数据: headers

实体: entity-body

HTTP请求响应报文详解:

<method> <url> <version>

<header>

...

<header>

空1

空2

<entity-body>


<version> <status> <reason-phrase>

<header>

...

<header>

空1

空2

<entity-body>


100信息

200 OK 成功

301 Moved Permantly 永久 302 Found 临时 304 Not Modified 条件

401 WWW-Authenticate 质询认证 403 Forbidden 没有权限访问 404 Not Found 没有资源 

500 Internal Server Error 服务内部错误  502 Bad Gateway 错误网关


URL Uniform Resource Locator 标识每个资源的位置 URL是URI的子集

技术分享

技术分享

相对URL:相对当前页面的URL,(相对路径:由当前工作目录起始的路径)

绝对URL:用于跨站引用或当前页面,(绝对路径:由/起始的路径)

HTTPD版本 

技术分享

HTTPD特性

技术分享

追踪用户来源的机制

技术分享

Cookie工作方式

技术分享

二次通信: 

服务器 接收随机数(令牌) <-- 客户端  将访问的服务器首次所发的令牌发给服务器,用于标明自己的身份

Cookie分类

技术分享

Session:<轻cookie:减小隐私信息丢失的可能性>,在服务器端在进程内存中维护Session

技术分享


HTTP事务 一次httpd请求和响应

事务元数据:(起始行+headers)

实体:entity-body部分


HTTP请求响应报文详解

技术分享


请求报文

技术分享

响应报文

技术分享


method 客户端告诉服务器做什么

技术分享

技术分享

技术分享

技术分享

技术分享

status code 服务器告诉客户端结果

reason-phrase  原因短语

技术分享

反向代理:将自己扮演为服务端接收请求,支持缓存,拆封报文并重新封装

正向代理:将自己扮演为客户端发起请求

重定向

技术分享

条件式请求

技术分享


用户质询认证

技术分享


Forbidden 请求被禁止,IP控制或用户访问控制不通过时

404 用户请求一个不存在的资源 


错误网关:

技术分享




headers 请求和响应首部: 标记请求或响应的属性 , 事务交换的元数据信息

负载均衡调度时,可以根据首部调度

1、首部可以有多个

2、首部的格式:Directive: value


首部分类

技术分享


通用首部

技术分享

请求首部

自己可接受的特性

技术分享

条件式请求首部: 缓存相关

技术分享

安全请求首部

技术分享

代理请求首部

技术分享


响应首部

技术分享


实体首部

技术分享


示例

Request URL:http://btn.siteuptime.com/genbutton.php?u=89773&m=101594&c=red&p=total
Request Method:GET                     //请求的方法
Status Code:304 Not Modified           //条件式请求返回的状态码
Remote Address:198.232.125.32:80       //服务器端地址   
Cache-Control:max-age=86400            //控制缓存生效
Connection:keep-alive                  //连接状态
Date:Tue, 26 Sep 2017 09:51:09 GMT      //请求时间
Expires:Wed, 27 Sep 2017 09:51:09 GMT   //过期时间
Last-Modified:Tue, 26 Sep 2017 03:39:50 GMT         //上次发生改变的时间
Pragma:no-cache                                     //兼容HTTP/1.0或HTTP/1.1
Server:NetDNA-cache/2.2                             //服务器程序名和版本号
Set-Cookie:PHPSESSID=j7hlme3jhium3la0ibuh           //发给客户的端的令牌
X-Cache:HIT                                         //缓存是否命中 
X-Frame-Options:SAMEORIGIN                       
Accept:image/webp,image/*,*/*;q=0.8                 
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:PHPSESSID=j7hlme3jhium3la0ibuh8es905         //向服务器发送cookie
Host:btn.siteuptime.com                             //服务主机
If-Modified-Since:Tue, 26 Sep 2017 03:39:50 GMT     //条件式请求首部:自从...时候以来...缓存是否改变,Expire,Last-Modified
Referer:http://wowubuntu.com/markdown/basic.html    //本页面的引用入口 
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) //用户代理



本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1968933

以上是关于+++++++HTTP进阶之HTTP协议基础的主要内容,如果未能解决你的问题,请参考以下文章

http协议进阶http概述

flask基础之请求处理核心机制

HTTP协议基础知识

Web基础之http协议

web开发基础之HTTP协议

05慕课网《进击Node.js基础》HTTP概念进阶