HTTP协议摘要

HTTP-message = Request | Response ; HTTP/1.1 messages


generic-message = start-line *(message-header CRLF) CRLF [ message-body ]


start-line = Request-Line | Status-Line


Method = "OPTIONS" ;
| "GET" ;
| "HEAD" ;
| "POST" ;
| "PUT" ;
| "DELETE" ;
| "TRACE" ;
| "CONNECT" ;
| extension-method
extension-method = token


message-header=*(general-header)[request-header|response-header]*(entity-header)


general-header 一般可应用于请求和响应消息上,但不应用到传输的实体上。这些头部域只应用到正在传输的消息上。
general-header = Cache-Control
| Connection ;
| Date ;
| Pragma ;
| Trailer ;
| Transfer-Encoding ;
| Upgrade ;
| Via ;
| Warning ;


Request = Request-Line ;
*(( general-header ;
| request-header ;
| entity-header ) CRLF) ;
CRLF
[ message-body ] ;


request-header域允许客户端传输关于请求和关于客户端自己的额外信息给服务器。这些域拌演请求修饰符,与编程语言方法符号上的参数有相同的语义。
request-header = Accept ;
| Accept-Charset ;
| Accept-Encoding ;
| Accept-Language ;
| Authorization ;
| Expect ;
| From ;
| Host ;
| If-Match ;
| If-Modified-Since ;
| If-None-Match ;
| If-Range ;
| If-Unmodified-Since ;
| Max-Forwards ;
| Proxy-Authorization ;
| Range ;
| Referer ;
| TE ;
| User-Agent ;


Response = Status-Line ;
*(( general-header ;
| response-header ;
| entity-header ) CRLF) ;
CRLF
[ message-body ] ;


Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF


response-heder域允许服务器传递不能放在Status-Line中的关于响应的额外信息。这些头部域给出关于服务器和关于对Request-URI所标识资源的以后访问。
response-header = Accept-Ranges ;
| Age ;
| ETag ;
| Location ;
| Proxy-Authenticate ;
| Retry-After ;
| Server ;
| Vary ;
| WWW-Authenticate ;


entity-header域定义关于entity-body的元信息,或当主体不存在时关于请求标识的资源。该元信息中的一些是【可选的】;一些可能是【要求的】,由该规范的各部分定义。
entity-header = Allow ;
| Content-Encoding ;
| Content-Language ;
| Content-Length ;
| Content-Location ;
| Content-MD5 ;
| Content-Range ;
| Content-Type ;
| Expires ;
| Last-Modified ;
| extension-header
extension-header = message-header


HTTP消息的message-body(如果存在)用于挟带与请求或响应相关联的entity-body。message-body 只有在应用了transfer-coding 时,通过Transfer-Encoding 头部域指出,与entity-body不同。
message-body = entity-body | <按每个Transfer-Encoding编码的entity-body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(1) HTTP超文本传输协议用于定义web页面(超文本)在网络上的交互方式的应用层协议,使用客户/服务器的工作方式。HTTP协议定义了web客户端(浏览器)如何向web站点请求web网页以及web服务器如何将web页传送给客户机。当用户请求一个页面时,浏览器会向web服务器发出对该页及其引用的相关对象的HTTP请求报文,服务器响应这些请求报文,生成HTTP响应报文,并将请求的对象附在HTTP响应报文后发送给客户端。 (2) 由于网页文档的传输需要可靠性的保证,所以HTTP协议使用TCP协议,TCP协议是一个面向连接的协议,在通信时需要建立连接,通信结束要释放连接,TCP建立连接时需要三次握手,提供可靠的数据传输,HTTP协议默认端口为80. (3) HTTP协议包括HTTP1.0:RFC1945和HTTP1.1:RFC 2068.HTTP1.1兼容HTTP1.0。HTTP1.0是采用非持续连接和非流水线作业方式,而HTTP1.1采用持续连接和流水线作业方式。 (4) Web缓存的进一步讨论,保证web缓存代理服务器缓存页面能够和web服务器的最新页面一致的方法。 (5) HTTP协议的无状态性:服务器无法通过HTTP协议记录用户的登录信息。使用Cookie保存信息。 (1) 打开wireshark开始抓包,然后上网至江西师大教务在线网(www.jxnu.edu.cn),连接后停止(stop)抓包。设置过滤规则:udp.port==53||tcp.port==80.(HTTP协议默认使用传输层TCP协议的80端口),考虑到我的电脑未能连网,所以选择老师抓好的包做实验分析。 (2) 分析HTTP协议报文。 (2) 第一阶段:TCP建立连接阶段。第三帧是web客户端(即浏览器,源IP地址为192.168.0.250)发给web服务器端(目标IP地址为218.65.113.46)的TCP连接的第一次握手(SYN)。第四帧是web服务器端与web客户端的TCP连接的第二次握手(SYN,ACK)。第五帧是浏览器与web服务器的TCP连接的第三次握手(ACK),此时TCP连接建立。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值