概述
上文中Coding中实现了监听app server的端口( 移动端搭建Http Server(二)—— 实现监听并验证),这篇将讲解Http协议
1.HTTP协议相关知识
做Android开发都用过Http网络库,如URLConnection,HttpClient,OKHTTP等,它们都封装了HTTP Request请求,我们在使用的时候只需要传url和请求方式以及相应的参数和数据,那么它们底层是给服务器传输了什么样的数据,那么我们只需要看HTTP Request协议格式就知道了。
2.HTTP Request协议格式
通信双方建立Socket连接后,客户端会在输出流里写下下面一组数据:
{请求方法} {/相对路径} HTTP/{http版本}rn
请求方法:GET/POST
相对路径:接在域名后的部分
http版本:比如常用的1.1版本
rn:CRLF(回车和换行)结束符Header-Name-1:valuern
Header-Name-2:valuern
Http Request中可以带多个头rn (空的rn表示头部数据写完了)
Optional Request Body(可选)
请求示例:
GET /r/www/cache/static/jquery/jquery-1.10.2.min_65682a2.js HTTP/1.1
Host s1.bdstatic.com
Referer http://www.baidu.com
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36
可以查阅W3C官网查阅每个约定头部的用途。这里发现一个网站挺好,有好多基础教程http://www.runoob.com/
其中有介绍HTTP 响应头信息
3.HTTP Response协议格式
HTTP/{version} {status-code} {message}rn
version:协议版本如1.1
status-code:是约定好的如200(正常)、302(资源位置改变)、404(Url无效)、500(服务器内部错误)
message:错误信息Header-Name-1:valuern
- Header-Name-2:valuern
- rn
- Optional Response Body
实例:
HTTP/1.1 302 Moved Temporarily
Content-Type text/html
Content-Length 215
Server BWS/1.1
等
下篇基于本篇的基础上实现了提取Http请求中的Header数据
移动端搭建Http Server(四)—— 解析HTTP请求Headers
最后
以上就是虚幻苗条为你收集整理的移动端搭建Http Server(三)—— HTTP协议讲解的全部内容,希望文章能够帮你解决移动端搭建Http Server(三)—— HTTP协议讲解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复