移动端搭建Http Server(三)—— HTTP协议讲解

上文中Coding中实现了监听app server的端口( 移动端搭建Http Server(二)—— 实现监听并验证),这篇将讲解Http协议

1.HTTP协议相关知识

做Android开发都用过Http网络库,如URLConnection,HttpClient,OKHTTP等,它们都封装了HTTP Request请求,我们在使用的时候只需要传url和请求方式以及相应的参数和数据,那么它们底层是给服务器传输了什么样的数据,那么我们只需要看HTTP Request协议格式就知道了。

2.HTTP Request协议格式

通信双方建立Socket连接后,客户端会在输出流里写下下面一组数据:

  • {请求方法} {/相对路径} HTTP/{http版本}\r\n
    请求方法:GET/POST
    相对路径:接在域名后的部分
    http版本:比如常用的1.1版本
    \r\n:CRLF(回车和换行)结束符

  • Header-Name-1:value\r\n

  • Header-Name-2:value\r\n
    Http Request中可以带多个头

  • \r\n (空的\r\n表示头部数据写完了)

  • 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}\r\n
    version:协议版本如1.1
    status-code:是约定好的如200(正常)、302(资源位置改变)、404(Url无效)、500(服务器内部错误)
    message:错误信息

  • Header-Name-1:value\r\n

  • Header-Name-2:value\r\n
  • \r\n
  • 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值