网络请求基础知识(一)HTTP 基础篇

2019-08-22  本文已影响0人  西小瓜

1.报文格式

1.1 请求报文

以下是发起一个 HTTP 请求需要的主要信息,在发起网络请求时我们一般只提供 URL 和请求实体,剩下的交给框架(Okhttp3或者 Retrofit等)完成。

Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Linux; Android 7.0; m3 note) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
ip=172.56.168.66&imei=86521684611</pre>
1.2 响应报文

准备好http 请求信息后,接下来就可以发起网络请求了,请求一般使用socket ,具体实现可以通过 TCP/UDP 来传输。

Server: nginx/1.8.1
Date: Thu, 03 Jan 2019 07:31:02 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 93
Connection: keep-alive
Accept-Charset: big5, big5-hkscs, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141
​
{"adlist":{"kaiping":{"ad":{}},"yunying":{"ad":{}}},"showadtime":"10","getadlisttime":"1200"}</pre>
1.2.1 状态吗
2xx:成功,报文已成功收到并被正确处理
3xx:重定向,资源位置发生变动,需要客户端重新发送请求
4xx:客户端错误,请求报文有误,服务器无法处理
5xx:服务器错误,服务器在处理请求时内部发生了错误</pre>```
1.2.2 响应头
   Location: https://www.baidu.com/
   Non-Authoritative-Reason: HSTS</pre>
1.2.3 使用缓存过程如下图:
image

2.HTTP 的特点:

3. HTTP 的优点和缺点

3.1 优点
3.2 双刃剑
3.3 缺点:
  • 虽然银行可以用 MD5、SHA1 等算法给报文加上数字摘要,但还是因为“明文”这个致命缺点,黑客可以连同摘要一同修改,最终还是判断不出报文是否被窜改

如何解决:HTTPS

概括:不算好,不够好

如何解决:Web 性能优化,缓存等

终极解决方案:HTTP/2 和 HTTP/3

上一篇下一篇

猜你喜欢

热点阅读