我是靠谱客的博主 虚幻苗条,最近开发中收集的这篇文章主要介绍移动端搭建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版本}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协议讲解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部