http协议

1.TCP/IP协议:关注客户端与服务器之间数据传输是否成功

TCP三次握手和四次挥手:

这里写图片描述

2.HTTP协议:是在TCP/IP协议之上封装的一层协议,首先关注数据传输是否成功,然后关注数据传输的格式是否规范;例如:对于浏览器来说需要要求不同服务器发送的响应数据格式必须一致,对于服务器来说需要要求不同浏览器发送的请求数据的格式必须一致。

HTTP URL格式如下所示:

http://host[":"port][abs_path]

http表示要通过HTTP协议里定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则默认为80;abs_path指定请求资源的URI。
具体URL格式可参考:URL详解

2.1 HTTP请求报文:由请求行、请求报头、空行、请求数据4部分构成

2.1.1请求行 :由请求方法、URI字段和HTTP协议组成,格式如下:

Method Request-URI Http-Version

其中Method为请求方法,Request-URI是URI字段;Http-Version表示请求的HTTP协议版本。HTTP请求方法有8种,分别是GET、POST、DELETE、PUT、HEAD、TRACE、CONNECT 、OPTIONS。其中PUT、DELETE、POST、GET分别对应着增删改查,对于移动开发最常用的就是POST和GET了。

get:请求获取Request-URI所表示的资源
post:在Request-URI所表示的资源后附加新的数据
例如访问:

http://localhost:8080/test/testMethod.html

并且在表单中输入name:root password:123456,get方式提交的信息如下:

GET /test/testMethod.html?name=root&password=123456 HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/day09/testMethod.html
Connection: keep-alive

post方式提交的如下:

POST /test/testMethod.html HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/day09/testMethod.html
Connection: keep-alive

name=root&password=123456

可以看到get方式提交表单:地址栏(URI)会跟上参数数据,以?开头,多个参数之间以&分割。post方式提交:参数不会跟着URI后面,参数而是跟在请求的实体内容中,没有?开头,多个参数之间以&分割。故在客户需要填写表单的场合通常使用POST方法,请求数据不在get中方法使用而是在POST方法

2.2 HTTP响应报文
HTTP响应报文由状态行、响应抱头、空行、响应正文
2.2.1状态行格式如下:

HTTP-Version Status-Code Reason-Phrase

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。例如:

HTTP/1.1 200 OK

2.3HTTP的消息报头
具体可参考Android网络编程(一)HTTP协议原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值