+++++++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的子集

wKiom1nJ-RDgjRdhAAA-u68AC_I008.png

wKioL1nJ-NXS1xyJAACC9wLjBC8129.png


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

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

HTTPD版本 

wKioL1nJ-bWwnqnDAAAszbo6oXQ354.png

HTTPD特性

wKiom1nJ-jXz_ZYOAAAWHLnJ7Ok403.png

追踪用户来源的机制

wKiom1nJ-oTzb3cHAAAHTu69TLE113.png

Cookie工作方式

wKioL1nJ_W-j4nQ2AADisY5AgIA700.png

二次通信: 

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

Cookie分类

wKioL1nJ_knDLRDUAAAlkc-4pAc492.png

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

wKioL1nKACzjB7cDAAAprAAb4BM891.png


HTTP事务 一次httpd请求和响应

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

实体:entity-body部分


HTTP请求响应报文详解

wKioL1nKCjmBW5eAAAAM3N4-Lu8364.png


请求报文

wKioL1nKAlPRzSviAAARRu56gy8100.png

响应报文

wKiom1nKAqywVdBHAAAWkJRJ9bg885.png


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

wKiom1nKBaGj_rUIAAAcdYi6Clg457.png

wKioL1nK_hzSRk8zAAB6IST_l6w385.png


wKioL1nKBbvhanV6AAAxM7P7-Vs104.png

wKioL1nKBdHyvTomAAA8r275sOE884.png

wKiom1nKBi_AXM-4AABSYtOtIb8282.png



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

reason-phrase  原因短语

wKioL1nKCfnDMJQ7AAA7gHUxIlc298.png

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

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


重定向

wKiom1nKC-_x8tYoAAAhh9aM8Nw066.png


条件式请求

wKiom1nKDQDAKVABAAAcrcrqZSY284.png



用户质询认证

wKioL1nKEJ_RfY8cAABfRT5vde0430.png


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

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


错误网关:

wKiom1nKCyiwOmz-AAArdZbEuwo524.png




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

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

1、首部可以有多个

2、首部的格式:Directive: value


首部分类

wKioL1nKEmiA_Y_gAAAb_Bob7YQ259.png


通用首部

wKioL1nKErSyDWUqAAAxLomZ27M461.png


请求首部

自己可接受的特性

wKioL1nKF6PzaFzBAABK9t0xRU8881.png

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

wKiom1nKGCCQ-9_LAAA19DhGWsw154.png

安全请求首部

wKiom1nKGNqAK_99AAAWs2Nbg00161.png

代理请求首部

wKioL1nKGReBaSenAAAK9fBIGgM709.png


响应首部

wKioL1nKGe7TdQ02AABKbEoprig846.png


实体首部

wKioL1nKIWOiVxRdAABjFnD7AY8390.png


示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
General
     Request URL:http: //172.16.100.1/          
     Request Method:GET
     Status Code: 200  OK
     Remote Address: 172.16 . 100.1 : 80                    //服务器地址 
Response Headers
view source
     Accept-Ranges:bytes                                          
     Connection:close                                  // 服务器是非持久连接 KeepAlive off
     Content-Encoding:gzip                             // 实体格式:字符集,包含多种语言编码格式
     Content-Length: 7725                               // 大小
     Content-Type:text/html; charset=UTF- 8             // 类型
     Date :Sat,  09  Sep  2017  12 : 30 : 15  GMT                // 请求报文的创建时间
     ETag: "10c-6353-558c0da6c3922"                     // 实体的额外标签,基于标签的条件式请求
     Last-Modified:Sat,  09  Sep  2017  12 : 30 : 05  GMT       // 实体最近一次修改的时间    
     Server:Apache/ 2.2 . 15  (CentOS)                     // 服务器程序名、版本号
     Vary:Accept-Encoding                              // 服务器查看变化的首部
Request Headers
view source
     Accept:text/html,application/xhtml+xml,applicat  // 客户端可接受的MIME类型
     Accept-Encoding:gzip, deflate, sdch              // 客户端可接受的压缩格式    
     Accept-Charset:                                  // 字符集               
     Accept-Language:zh-CN,zh;q= 0.8                   // 客户端可接受的语言编码格式
     Cache-Control:max-age= 0                          // 缓存控制
     Connection:keep-alive                            // 
     Host: 172.16 . 100.1                                // 服务器主机                  
     User-Agent:Mozilla/ 5.0                  // 用户代理









本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1968933,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
94 7
|
5天前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
42 15
|
3天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
3天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
25 1
|
1月前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
1月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
|
29天前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
55 11
|
19小时前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
29天前
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
42 8
|
1月前
|
安全 应用服务中间件 Linux
判断一个网站是否使用HTTPS协议
判断一个网站是否使用HTTPS协议
47 4

热门文章

最新文章