网络传输知识:HTTP协议

计算机网络体系结构的通信协议:

1.物理层:以太网、调制调节器、电力线通信、SONET/SDH、光导纤维、同轴电缆、双绞线等。
2.数据链路层:Wi-Fi(IEEE 802.11)、WiMAX(IEEE 802.16)、ATM、令牌环、PPP、L2TP、PPTP等
3.网络层协议:IP(IPv4、IPv6)、ICMP、ICMPv6、IGMP、IS-IS、IPsec、ARP、RAPP等
4.传输层协议:TCP、UDP、TLS、DCCP、SCTP、RSVP、OSPF等
5.应用层协议:DNS、FTP、Gopher、HTTP、IMAP4、POP3、SIP、SSH、TELNET、RPC、SDP、SOAP、GTP等。


HTTP协议的4个关键点
  • HTTP是建立在TCP/IP协议之上,面向应用层的超文本传输协议
  • 它由请求和相应组成,完全符合标准的客户端服务器的请求响应模型
  • 协议很轻便简单,并且请求与请求之间没有关联,是无状态性的协议
  • 为了弥补这种无状态性,就需要使用HTTP协议的扩展Cookie等方式建立关联

请求报文

在这里插入图片描述
1.请求行(request line)
2.请求头部(request header)
3.请求主体(request body)

  • Accept

指定客户端能够接受的内容类型,内容类型的先后顺序表示客户端接受的先后顺序
比如:Accept:text/html,application/xml

  • Accept-Encoding

指定客户端浏览器可以支持的web服务器返回内容压缩编码类型

允许服务器在将输入内容发送到客户端以前进行压缩,以节约带宽。

比如:Accept-Encoding:gzip,deflate

  • Accept-Language

指定http客户端浏览器用来展示返回信息所先选择的语言

比如:Accept-Language:zh-cn,zh;q=0.5 后面的q表示权重

  • Connection

表示是否需要持久连接,
比如:Connection:keep-Alive

  • Content-Length

用于描述http消息实体的传输长度.需要注意的是:在http协议中,消息实体的长度和消息实体的传输长度是有区别的。
比如说gzip压缩下,消息实体长度是压缩前的长度,但是消息实体的传输长度是gzip压缩后的长度

  • Content-Type

显示此http请求提交的内容类型

比如:Content-Type:application/x-www-form-urlencoded;charset:UTF-8
"application/x-www-form-urlencoded"是浏览器的默认值,表示表单数据向服务器提交时所采用的编码类型。

  • Cookie

http请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器

  • Host

请求的web服务器域名地址
例:www.baidu.com

  • Origin

跨域的时候,get,post都会显示origin,同域的时候get不显示origin,post显示origin

  • Referer

包含一个url,用户从该url代表的页面触发访问当前请求的页面

  • User-Agent

http客户端运行的浏览器类型,详情。后台可以根据该头部信息,判断当前的http请求的客户端浏览器类型

  • X-Requested-With

用来判断客户端的请求是Ajax请求(异步)还是其他请求(同步)

后台可以利用request.getHeader(“x-requested-with”)为null判断是同步请求,为XMLHttpRequest则是Ajax异步请求
例:X-Requested-With:XMLHttpRequest

举例
在这里插入图片描述


响应报文

在这里插入图片描述

1.响应状态(response code)
2.响应头(response header)
3.响应主体(response body)

  • Accept-Ranges

表明服务器是否支持指定范围的请求,比如bytes,表明支持字节请求

  • Access-Control-Allow-Origin

在服务器响应客户端的时候,如果设置Access-Control-Allow-Origin:* ,则允许所有域名的脚本访问该资源
Access-Control-Allow-Origin:http://www.ppt.com ,则表示值允许特定的域名访问。

  • Age

从原始服务器到代理缓存形成的估算时间,单位为秒。

  • Cache-Control

告诉所有的缓存机制是否可以缓存,已经缓存的类型。cache-control : no-cache

  • Connection

在http1.1中request和reponse header中都有可能出现一个connection头字段,此header的含义是当client和server通信时对于长链接如何进行处理。在http1.1中,client和server都是默认对方支持长链接的, 如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close。

  • Content-Length

响应体的长度,web服务器返回消息正文的长度

  • Content-Type

返回内容的MIME类型Content-Type : text/html;charset=utf-8

  • Date

原始服务器消息发出的时间

  • Etag

请求变量的实体标签的当前值

  • Expires

响应过期的时间

  • Last-Modified

请求资源的最后修改时间

  • Server

web服务器软件名称

举例
在这里插入图片描述


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值