学习资源主要为:@小坦克HTTP相关博客

1、HTTP简介:

  HTTP协议是Hyper Text Transfer Portocol(超文本传输协议)的缩写,它是一种通信协议,允许将超文本(即:html文档)从Web服务器传输到本地浏览器的传输协议。

目前我们使用的是HTTP/1.1版本。

2、HTTP工作原理

  HTTP协议工作于客户端-服务端架构。浏览器作为HTTP的客户端,通过URL向HTTP服务端发送请求,HTTP服务端在接到请求后,向客户端发送响应信息。

  (在HTTP请求的客户端与服务器之间,有可能还存在“代理服务器”,客户端在请求时,先将请求发送到打理服务器,然后代理服务器请求服务器再进行返回。一般代理服务器都具有缓存的功能,这样可以提高访问速度。)

3、URL说明

  因客户端请求是通过URL的,所以针对URL进行简单的说明:

  URL是Uniform Resource Locator(统一资源定位符)的缩写,用于描述一个网络上的资源。

基本格式为:

schema://host[:port]/path/.../[?query-string][#anchor]

schema:指定使用的协议;

host:是指服务端的IP地址/域名;

port:端口,一般默认使用80端口,可以不写,如果使用的是其他接口,就需要带端口号。

path:是指请求的路径;

query-string:请求传递的参数;

anchor:锚;

4、消息结构

(1、请求消息

request消息分为3部分:请求行、请求头和请求体。在请求头和请求体之间会有一个空行。

请求行中,主要显示:请求方法、请求资源路径和协议版本号;

(2、响应消息

response消息和request消息结构基本一致,包括响应行、响应头和响应体。

5、http的无状态与connect:keep-alive

无状态是指协议对于处理事务没有记忆能力,服务器不知道客户端是什么状态。

从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接

Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间

最新文章

  1. Git使用小记
  2. Sightseeing(poj 3463)
  3. Spring.Net学习之简单的知识点(一)
  4. Mysql日志操作
  5. Jenkins TcpSlaveAgentListener Config
  6. adobe air 通用设置
  7. Apache URL rewrite 配置
  8. leetcode解决问题的方法||Integer to Roman问题
  9. Python队列服务 Python RQ Functions from the __main__ module cannot be processed by workers.
  10. lua的string库与强大的模式匹配
  11. doubango简介
  12. ArrayList和LinkedList区别及性能测试
  13. Java动手动脑——多态和继承
  14. GeoServer服务器环境的搭建
  15. Centos7 安装redis集群哨兵模式
  16. Hadoop基本介绍
  17. Excel之定位和查找
  18. python 线程和进程概述
  19. DX孟虎点评新兴市场:巴西俄罗斯火爆背后
  20. Linux 安装 EPEL YUM源

热门文章

  1. iPhone屏幕适配,历史及现状(http://hjcapple.github.io/2014/10/10/iphone-screen.html)
  2. java 求数组最大子序列之和
  3. C Make a Square Educational Codeforces Round 42 (Rated for Div. 2) (暴力枚举,字符串匹配)
  4. CDN学习记录
  5. imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable
  6. QT中获取选中的radioButton的两种方法
  7. POJ-2762-Going from u to v or from v to u(强连通, 拓扑排序)
  8. javascript(腾讯)
  9. MySQL报错:Cause: java.sql.SQLException: Incorrect string value: '\xE6\x9D\xA8","...' for column 'obj_value' at row 1
  10. 解决eclipse部署maven项目无法导入lib的问题