Http协议

一、HTTP概述
二、请求协议
三、响应协议
四、请求方式get和post

Http协议

HTTP协议是建立在TCP协议的基础之上,TCP用于数据传输,HTTP用于确定传输内容格式。

HTTP概述:

HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。

特点:
超文本传输协议,包括请求协议和响应协议。
无状态协议,每一次链接都是全新的链接,不记录以往状态。

请求协议(浏览器--->server)

1.请求首行:GET /favicon.ico HTTP/1.1 #基于什么版本的http协议	

2.请求头信息:
	Host:127.0.0.1:8080
	Connection:keep-alive #通信方式:长链接,等待3000毫秒再断开
	User-Agent:... #操作系统,浏览器
	Accept:*/* #可接收任意数据类型
	Accept-Encoding:... #编码,解压方式
	Accept-Language:... #支持语言
	Cache-Control:no-cache #页面缓存
	重点:
	Referer:... #引用,链接从哪里来
	Cookies:... #字典,存放多组键值对,由server返回给浏览器
	
3.空行

4.请求体:请求数据,get没有请求体,只有post由请求体

响应协议(server--->浏览器)

1.响应首行

2.响应头信息
	
	Request URL:http://127.0.0.1:8090/login/
	Request Method:GET
	Status Code:200 OK #状态码为200,表示请求成功,OK是对状态码的解释
	Remote Address:127.0.0.1:8090
	Response Headers
	view source
	Content-Type:text/html; charset=utf-8 #响应体使用的编码为UTF-8
	Date:Wed, 26 Oct 2016 06:48:50 GMT #响应的时间,这可能会有8小时的时区差
	Server:WSGIServer/0.2 CPython/3.5.2 #服务器的版本信息
	X-Frame-Options:SAMEORIGIN
	Set-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4; Path=/hello #响应给客户端的Cookie;
	Refresh:3;url=http://www.baidu.com #等待3秒,跳转到baidu
	
3.空行

4.响应体

请求方式get和post

GET请求:
	没有请求体
	数据必须在1k之内(有限)
	将请求方式内容等放在url连接中
	
	get请求常用的操作:
		1.在浏览器的地址栏中直接给出URL,那么就一定是GET请求
 		2.点击页面上的超链接也一定是GET请求
 		3.提交表单时,表单默认使用GET请求,但可以设置为POST

POST请求:
	数据不会出现在地址栏中
	数据的大小没有上限
	有请求体
	请求体中如果存在中文,会使用URL编码!

状态码

200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;4开头客户端出问题
500:请求资源找到了,但服务器内部出现了错误;5开头服务端出现问题
302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;
304:客户端请求,服务端返回304,表示与上次访问的网页缓存相同
原文地址:https://www.cnblogs.com/sunqim16/p/6856396.html