HTTP 通信

      工作了大半年,碰到了2次关于http通信相关的需求,虽然底层的代码都无需再写,但所谓知其然知其所以然,搞明白http的原理对相关的编程还是很有帮忙的,借此整理下。

1、搞明白什么是http

    通常我们学习socket编程的时候都会自己写一个server和一个client,server设置IP和端口,client通过该IP和端口去访问server,client和server就可以做一些简单的通信了。这种最简单的socket程序属于TCP通信。http就要比tcp高一个层次,怎么体现层次感呢,就是传属于http的一串参数 如 GET /xxx/xxx HTTP/1.1。当然要使通信属于是http通信,需要client和server共同支持。

     接下来从client的角度来看看这一串参数该如何写才能让server正确识别呢。从书上盗两张图,上图

 sp:空格  cr:回车 lf:换行

请求行:

        方法:最常用的是GET和POST,其他还有许多,可网上搜索或翻阅资料

        URL:一般就是网站的地址

        版本:版本号,如HTTP/1.1

首部行

       这边的参数通常都是一些选项,如Accept: xxx/jpg  表明我只请求server中jpg格式的图片

主体

     主体中参数格式就随便定义了,主要client和server达成一致即可。像一般的通信都需要认证,client都会在主体中将用户名密码发送到server,server认证成功后返回相应的信息。之前碰到的格式是: username=xxx&password=xxx...


状态行:

       版本  状态码  短语, 如返回成功就返回 HTTP/1.1 200  OK

首部行:和请求报文类似

主体: 和请求报文类似


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值