http协议

http协议是一种超文本传输协议,主要用于web超链接的传输。

http协议到目前已经有多个版本,最早的0.9版本,常用的是1.0和1.1版本,最新的是2.0版本

HTTP协议格式

1Http报文格式:

HTTP协议的请求报文和响应报文包括三个部分:

起始行(start line):描述请求或响应的基本信息

头部字段集合(header):使用key-value的格式

消息正文(entity):实际传输的数据  (可以有也可以没有)

2、请求报文

METHOD 空格 URL 空格 VERSION 换行

请求方法:GET、HEAD、PUT、POST

请求目标:通常是一个URL,编辑了请求方法要操作的资源

版本号:表示报文使用的HTTP协议版本

3、响应报文格式

VERSION 空格 StATUS CODE 空格 REASON 换行

版本号:表示报文使用的HTTP协议版本

状态码:一个三位数,表述状态

原因:作为数字状态码的补充,更详细的解释文字,帮助别人理解原因。

格式详细内容

1、请求行

请求行包含以下三个部分:请求方式、资源路径、http版本协议

例如:

请求方式

资源路径

http版本协议

Get

/index.html

HTTP/1.1

请求方式有8中,常用的有两种

get:请求被获取请求行的url所标识的资源

post:向指定的资源提交数据,请求服务器进行处理

head:请求获取由url所标识的响应消息头

put:将网页放置到指定的url位置

delete:请求服务器删除url所标识的资源

trace:请求服务器回送收到的请求信息,主要用于测试或诊断

connect:保留将来适应

options:请求查询服务器性能或着查询与资源相关的选项和需求

这里主要讲一下get和post的区别:

1、post传输数据无大小限制

2、post比get安全

2、消息请求头

消息请求主要是用于向服务器端传递附加消息,例如:传输的数据格式、压缩方法、语言以及发送请求url中的地址信息。

消息请求头中的数据都是以key-value格式定义的。key和value之间用“:”隔开。消息请求头可以自己定义,也可以适应默认的。常用的请求头字段如下:

字段

含义

accept

用于指出客户端程序能够处理的MIME

例如:accept:text/html 表示客户端希望接受html文本

accept:image/gif 表示客户端希望接受GIF图像格式的资源

Accept:image/*    表示客户端接受所有格式的image类型

Accept: */* 表示客户端可以接受所有格式的内容

Accept-charaet

用于告知服务器端客户端所使用的字符集

Accept-Endcoding

用于指定客户端能够进行的数据编码方式,这里的编码方式一般指的是压缩格式

Accept-Language

用于指定客户端期望服务器返回那个国家的语言的文档

Authorization与

Proxy-Authorization

认证信息

Host

用于指定资源所在的服务器和端口号

If-match

浏览器和代理服务器都可以缓存服务器回送的网页文档,当用户再次访问已缓存的页面时,如果网页没有更新,则会通知浏览器访问本地缓存页面

If-Modified-Since

作用和If-match类似,

Range和If-Range

用于指定服务器只需返回文档中的部分内容以及内容范围

Max-Forward

用于指定当前请求可以途径的代理服务器数量。

Referer

用于记录超链接向服务器发送Get请求时,记录超链接所在的位置

User-Agent

用于指定浏览器或者其他客户端程序使用的操作系统及版本、浏览器版本等

3、响应消息行

http响应状态行包括协议版本、状态码、状态。

例如:

协议版本

状态码

状态

Http/1.1

200

ok

4、响应消息头

服务器端通过响应消息头向客户端传递附加信息,包括服务程序名、被请求资源需要的认证方式、客户端请求资源最后修改的时间、重定向地址等信息。

字段名

含义

Accept-Range

用于说明服务器是否接收客户端使用Range请求资源

Age

用于指出当前网页文档可以在客户端或代理服务器中缓存的有效时间

Etag

用于向客户端传送代表实体内容特征点的标记信息,这些标记信息称为实体标签

Location

用于通知客户端获取请求文档的新地址

Retry-After

这个字段可以和503状态码配合使用,告诉客户端在什么时间可以重新发送请求

Server

用于指定服务器软件产品的名称

Vary

用于指向服务器所生成的响应内容的那些请求头字段名

Www-Authentication

Proxy-Authentication

当客户端访问受口令的网页文件时,服务器会在响应消息中回送401响应状态码和响应头。

Refresh

用于告诉浏览器自动刷新页面的时间

Content-Disposition

如果服务器希望浏览器不直接处理响应实体内容,而是让用户选择将响应的实体内容保存到一个文件中,就需要使用这个头字段。

5、其他通用头字段

字段

含义

Cache-Control

他是用于通知位于客户端和服务端之间的代理服务器如何使用已缓存的页面

Connection

用于指定处理完本次请求/响应后,客户端和服务器端是否还要继续保持链接

Date

用于表示http消息产生当前时间

Pragma

主要用于1.0版本通知代理服务器和客户端如何使用缓存页面

Transfer-Encoding

指定响应消息的实体内容采用哪种传输编码方式

Trailer

用于标识放置在数据之后的头字段

Upgrade

用于指定客户端想要从当前协议切换的新的通信协议

Via

用于指定http消息途径的代理服务器所使用的协议

Warning

用于说明其他头字段和状态码不呢个说明的一些附加信息

6、实体头字段

字段

含义

Allow

指定请求资源所支持的请求方式,用于通知客户端应该严格按照指定的方式请求资源

Content-Language

用于指定返回网页文档的画家语言类型

Content-Length

用于表示实体内容的长度

Content-Location

用于指定响应消息中实体内容的实际位置路径

Content-Range

用于指定服务器返回的部分实体内容的位置信息

Content-MD5

用于提供对实体内容的完整性检查,他的值是对实体内容MD5数字摘要后再进行Base64编码结果

Content-type

用于指出实体内容的MIME类型

Centent-Encoding

用于指定实体内容的压缩编码方式

Expires

用于指定当前文档的过期时间

Last-Modified

用于指定文档最后的更改时间

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值