前言
HTTP (HyperText Transfer Protocol,超文本传输协定),是互联网上利用最为宽泛的一种网络传输协定,运行在TCP之上,浏览器作为HTTP客户端通过URL向HTTP服务端发送申请,Web服务器依据接管到的申请后,向客户端发送响应信息。
特点
简略疾速
客户端向服务器申请服务时,只需传送申请办法和门路,就能够疾速失去服务器的响应。
无连贯
每次连贯只解决一个申请,服务器解决完客户端的申请,并收到客户端的应答后,即断开连接。
无状态
HTTP协定是无状态,服务器不会去记忆HTTP的状态,每次认为它都是一个新的申请(解决方案参考cookie、session...)
URL
URL(Uniform Resource Locator)对立资源定位符,是专为标识Internet网上资源地位而设置的一种编址形式,资源定位符是对能够从互联网上失去的资源的地位的一种简洁的示意,是互联网上规范资源的地址,组成:<协定>://<主机>:<端口>/<门路>
HTTP申请
HTTP的申请包含:申请行(request line)、申请头部(header)、空行 和 申请数据 四个局部组成。
在浏览器申请关上一个网页,抓包下数据
GET /test/index.html HTTP/1.1Host: www.test.cnUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN,zh;q=0.8,en;q=0.6
申请行
GET为申请类型,/test/index.html为要拜访的资源,HTTP/1.1是协定版本
申请头部
从第二行起为申请头部,Host指出申请的目的地(主机域名);User-Agent是客户端的信息,它是检测浏览器类型的重要信息,由浏览器定义,并且在每个申请中主动发送。
Accept通知服务器浏览器反对的可辨认的文件格式
Accept-Encoding通知服务器浏览器反对的编码类型,通常是某种压缩算法
空行
申请头前面必须有一个空行
申请数据
申请的数据也叫申请体,能够增加任意的其它数据。这个例子的申请体为空。
HTTP响应
Response音讯由四个局部组成:
状态行
HTTP版本号、状态码和状态音讯
消息报头
Date:生成响应的日期和工夫;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8,Content-Length:响应实体的内容长度
空行
空行是必须的,和request音讯里一样
响应注释
服务器返回给客户端HTML代码
HTTP申请办法
HTTP申请办法用于对指定的资源不同的操作形式(罕用的是http和post,RESTful接口的话个别会用到GET、POST、DELETE、PUT),次要能够分成以下几种:
1.GET//申请指定的页面信息,并返回实体主体。2.HEAD//相似于 GET 申请,只不过返回的响应中没有具体的内容,用于获取报头3.POST//向指定资源提交数据进行解决申请(例如提交表单或者上传文件)。数据被蕴含在申请体中。POST 申请可能会导致新的资源的建设和/或已有资源的批改。4.PUT//从客户端向服务器传送的数据取代指定的文档的内容。5.DELETE//申请服务器删除指定的页面。6.CONNECT//HTTP/1.1 协定中预留给可能将连贯改为管道形式的代理服务器。7.OPTIONS//容许客户端查看服务器的性能。8.TRACE// 回显服务器收到的申请,次要用于测试或诊断。9.PATCH//是对 PUT 办法的补充,用来对已知资源进行部分更新 。
HTTP状态码
示意服务器给客户端响应后果的状态码,http状态码是由三个十进制数字组成,第一个十进制数字定义状态码的类型,后两个数字没有分类的作用,http状态码共分为5种。
总结
http作为互联网使用最宽泛的协定,其重要性显而易见,通过本篇咱们次要意识了http,也为接下来咱们将要讲的tcp打好个根底吧。