HTTP简述

188 阅读3分钟

HTTP协议

一.什么是协议

计算机中的协议,同生活中相同,一式双份/多份,双方都遵从共同的一个规范,这个规范就可以称为协议,协议使计算机的语言更加规范,例如fttp,http,stmp,ip协议等,按照一定的规则,向服务器要或者发送数据,服务器按照一定规则,回应数据

二.HTTP工作流程

客户端 ==> WEB服务器(nginx,apache等)

  • 客户端发送请求,建立连接,连接就是网络上的虚拟电路
  • 沿着连接,服务器返回响应信息
  • 客户端接收到响应,html代码解析出图片文字等
  • 断开连接

Reaquest Header :请求头信息

请求格式:

  • 请求行
    • 请求方法 :GET/POST/PUT/DELETE/TRACE/OPTIONS
    • 请求路径 URL一部分
    • 所用的协议 THHP/1.1协议版本
  • 请求头信息(key:value)
  • 请求主体信息(发送内容)

Reaponse Header:响应头信息

http只是一种协议,发送方式不仅限于浏览器

  • 响应行
    • 协议版本
    • 状态码
    • 状态文字
  • 响应头信息(key:value)
  • 响应主体 content-length 长度
请求方法虽然在HTTP协议里规定了,但是WEB SERVER未必允许或支持这些方法

//HEAD:和GET基本一致,只是确认内容的存在,不需要返回具体的内容,只返回响应头信息
//TRACE:在使用代理上网的时候,查看代理是否修改你的HTTP请求,
//可以使用TRACE进行测试,服务器会返回收到的请求
//OPTIONS:返回服务器可用的请求方法

三.状态码和状态文字

返回服务器的响应程度

http 状态码: 
1xx(临时响应)
	表示临时响应并需要请求者继续执行操作的状态代码
2xx (成功)表示成功处理了请求的状态码。
	200 – 服务器成功返回网页
3xx(重定向)表示要完成请求,需要进一步操作
    301(永久移动)请求的网页已永久移动到新位置。 服务器返回此响应时,会自动将请求者转到新位置。
    302(临时移动)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    header ('Location:http://www.baidu.com') //默认302
    header ('Location:http://www.baidu.com',true,301)
    //指定301,true指用301信息替代原来头信息
	304 (未修改) 取的缓存信息,Not Modined
	307 (保持原数据,适用于get)
	响应头中Last -Modifiend(上次修改日期) 与ETag配合使用客户端的缓存中有这个信息,判断时间和修改状态客户端告知服务器是否发生变化,过期会修改让服务器再次发送(If-Modifiend-Since,If-None-Match)-->发生变化或超出时间,时间戳信息
4xx(请求错误)	表示请求可能出错,妨碍了服务器的处理。
	404 – 请求的网页不存在
5xx(服务器错误) 
    500	(服务器内部错误)	服务器遇到错误,无法完成请求。
    503	(服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态