10分钟入门HTTP协议

HTTP协议入门1


所学习的协议版本是HTTP 1.1

请求与响应

HTTP是基于TCP的协议, 所以可靠性是由传输层来保障的.在使用协议时,发出请求的是客户端, 接收请求的是服务端。

所以在操作方面,HTTP协议分为了2部分:request请求、response响应

URI:Uniform Resource Identifier
格式:http://user:password@www.abcd.com:80/dir/index.html?uid=1
例如:http://ftp.is.co.za/rfg/abc.txt

URL:Uniform Resource Locator
就是访问网页时需要输入的网址。
例如:http://www.baidu.com

换行符说明:
\r\n =CR+LF
CR    Carriage Return 16进制:0x0d 
LF    Line Feed 16进制:0x0a

请求方面:
图是打开百度图片时用wireshark捕获到的请求包
注意到,每行结尾都是以\r\n换行。
请求头request header与request body之间用一个空行分割
GET / HTTP/1.1\r\n
请求的服务类型 URI HTTP版本号 换行符

响应方面:
图为打开百度图片时用wireshark捕获到的响应包
类似的,响应头每行以\r\n结尾(CR+LF)。
响应头respose header与response body之间使用一个空行分割。
HTTP/1.1 200 OK\r\n
协议版本 200是状态码 OK是状态码的原因
状态码大全FromBaidu

获取资源

HTTP协议不保存状态, 所以HTTP协议是简单的。 所以可以处理大量的事务。但是现代网站都有保存登录状态的能力,使用的事cookie技术。

方法:Method
1. GET方法
目的:请求资源,主要就是请求Response body。
如果请求的是文本资源, 则直接原样返回。 如果是CGI那样的程序, 则返回经过执行后的程序
2. POST
目的:POST的目的是向服务器发送信息。而不是请求response body。
3. PUT
用于文件传输
4. HEAD
目的:只获得报文的header
用于确认URI的有效性
5. DELETE
目的:删除文件
6. CONNECT
目的:用隧道协议链接代理

链接类型:HTTP/1.1默认是持久链接

使用持久连接(响应接收顺序不确定)
TCP3次握手建立连接
发送请求1
发送请求1
发送请求1
接收响应2
接收响应3
接收响应1
TCP4次挥手断开连接

以下使用非持久连接
比如有3个请求
TCP3次握手建立连接
发送请求1
接收响应1
TCP4次挥手断开连接

TCP3次握手建立连接
发送请求2
接收响应2
TCP4次挥手断开连接

TCP3次握手建立连接
发送请求3
接收响应3
TCP4次挥手断开连接

可以看出,持久连接明显节约的链接建立带来的网络延时问题并节约了流量。

报文传输的选项:

  1. 压缩
  2. 分割传输编码:(让浏览器可以逐步显示页面*)
  3. 同时发送中数据对象:(文本, 图片,视频等)
  4. 获取部分内容,断点恢复:当图片接收了50%网络不好断开时,可以选择继续接收后面的50%.
  5. 内容协商:针对不同地域,服务供应商提供不同语言的页面,不同的编码。Accept,Accept-Charset,Accept-Encoding,Accept-Language,Content-Language。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值