了解HTTP基本知识板块
一、HTTP 协议概述
HTTP协议采用了请求/响座模型。 客户端向服务器发送—个请求,请求头包含请求的方法、URT.、协议版本、以以 及包含请求修饰符。客户信息和内容的类似于MIME的消息结构。 服务器以一个状态行作为响应,响应的内容包括消息协议的版本, 成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。
HTTP 已经演化出 了很多版本,它们中的大部分都是向下兼容的。
(1) HTTP/0.9;已讨过时。只接受 GET —种请求方法,没有在通讯中指定版本号,且不支持请求头。 由干该版本不支持 POsT方法,所以客户端无法向服务器传递太多信息。
(2)HTTP/1.0∶ 这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用, 特别是在代理服务器中。
(3)HTTP/1.1∶ 当前版本。持久连接被默认采用, 并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
二、HTTP请求流程
用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

三、TCP建立连接的过程

三次握手讲解∶
1.客户端发送位码为syn= 1,随机产生seqnumber=1234567的数据包到服务器,服务器由 SYN=1知道客户端要求建立联机(客户端∶ 我要连接你)
2.服务器收到请求后要确认联机信息,向A发送ack number=(客户端的seq+1),syn=1,ack=1,随机产生 seq=7654321的包(服务器∶好的,你来连吧)
3.客户端收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,客户端会再发送ack number=(服务器的 seq+1).ack=1,服务器收到后确认seq值与ack=1则连接建立成功。(客户端∶ 好的,我来了)
四、TCP断开连接的过程

TCP关闭连接过程∶
1.Client向Server发送FIN包,表示Client主动要关闭连接,然后进入FIN WAIT 1状态,等待Server返回ACK包。此后Client不能再向Server发送数据,但能读取数据。
2.Server收到FIN包后向Client发送ACK包,然后进入CLOSE WAIT状态,此后 Server不能再读取数据,但可以继续向 Client发送数据。
3.Client收到Server返回的ACK包后进入 FIN WAIT 2状态,等待Server发送FIN包。
4.Server完成数据的发送后,将FIN包发送给Client,然后进入LAST ACK状态,等待Client返回ACK包,此后Server既不能读取数据,也不能发送数据。
5.Client收到FIN包后向Server发送ACK包,然后进入TIME WAIT状态,接着等待足够长的时间(2MSL)以确保Server接收到ACK包,最后回到CLOSED状态,释放网络资源。
6.Server收到Client返回的ACK包后便回到CLOSED状态,释放网络资源
五、HTTP方法
HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法 (HTTP method)。每条 HTTP 请求报文都包含一个方法,
告诉服务器要执行什么动作, 包括∶ 获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST。
HTTP 方法 描述
GET 请求获取 Request-URI 所标识的资源
PUT 请求服务器存储一个资源,并用 Request-URI 作为其标识
DELETE 请求服务器删除 Request-URI 所标识的资源
POST 在 Request-URI 所标识的 资源后附加新的数据
HEAD 请求获取由 Request-URI 所标识的资源的响应消息报头
六、HTTP 状态码
HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL时,服务器根据处理情况返回相应的处理状态。
| 状态码首位 | 已定义范围 | 分类 |
| 1xx | 100-101 | 信息提示 |
| 2xx | 200-206 | 成功 |
| 3xx | 300-305 | 重定向 |
| 4xx | 400-415 | 客户端错误 |
| 5xx | 500-505 | 服务器错误 |
HTTP 常见状态码状态码
| 状态码 | 功能描述 |
| 200 | 一切正常 |
| 301 | 永久重定向 |
| 302 | 临时重定向 |
| 401 | 用户名或密码错误 |
| 403 | 禁止访问(客户端IP地址被拒绝) |
| 404 | 文件不存在 |
| 414 | 请求URI头部过长 |
| 500 | 服务器内部错误 |
| 502 | 无效网关 |
| 503 | 当前服务不可用 |
| 504 | 网关请求超时 |
了解HTTP基本知识板块的更多相关文章
- 手工制作的年份Java老A发售量
Java老A这本书是写了很长的时间,昨天终于开始china-pub.京东.活动当天发售的猫,现在,简称买卖,他当然还没有到. 有兴趣的人能够去看看哈(兴许其它站点地址也会在这里公开): china-p ...
- 2018.10.23 NOIP训练 Leo的组合数问题(组合数学+莫队)
传送门 好题. 考察了莫队和组合数学两个知识板块. 首先需要推出单次已知n,mn,mn,m的答案的式子. 我们令f[i]f[i]f[i]表示当前最大值为第iii个数的方案数. 显然iii之后的数都是单 ...
- 【转】学习Python的19个资源
原文链接:[译]学习Python编程的19个资源 用Python编写代码一点都不难,事实上它一直被赞誉为最容易学的编程语言.如果你准备学习web开发, Python是一个不错的开始,甚至想做游戏的话, ...
- 学习 Python 编程的 19 个资源 (转)
学习 Python 编程的 19 个资源 2018-01-07 数据与算法之美 编译:wzhvictor,英文:codecondo segmentfault.com/a/119000000418731 ...
- web前端开发-博客目录
web前端开发是一个新的领域,知识连接范围广,处于设计与后端数据交互的桥梁,并且现在很多web前端相关语言标准,框架库都在高速发展.在学习过程中也常常处于烦躁与迷茫,有时候一直在想如何能够使自己更加系 ...
- NLP教程(5) - 语言模型、RNN、GRU与LSTM
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...
- NLP教程(6) - 神经机器翻译、seq2seq与注意力机制
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...
- NLP教程(7) - 问答系统
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...
- 自己一晚上总结的php基础知识!好累。好充实。
为了巩固自己的基础提升自己的技术.花了一晚上的时间结合w3c上的非常基础的东西,和自己的部分见解,写了不少,望大神们指正,指导.. <?php /* 这段话必须要写在开篇啊!死老猫,你又刺激我! ...
随机推荐
- MapReduce框架原理-OutputFormat工作原理
OutputFormat概述 OutputFormat主要是用来指定MR程序的最终的输出数据格式 . 默认使用的是TextOutputFormat,默认是将数据一行写一条数据,并且把数据放到指定的输出 ...
- GitHub不再支持密码验证解决方案:SSH免密与Token登录配置
今天提交代码,push到GitHub上,突然出现这个问题. remote: Support for password authentication was removed on August 13, ...
- zookeeper的简介和相关命令操作
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- SSM集成FastJson
FastJson Json数据格式回顾 什么是json JSON:(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript( ...
- MongoDB-01-基础
mongodb逻辑结构 Mongodb 逻辑结构 MySQL逻辑结构 库 (database) 库 集合(collection) 表 文档(document) 数据行 安装部署 1 系统准备 1 这里 ...
- Python - typing 模块 —— Any Type
前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...
- 查询liunx上磁盘占用情况
查询挂载盘磁盘情况 df -h 查询指定目录下的文件夹内存占用情况 du -hs /*
- WPF/Winform 图表库LiveCharts
早前的博客,自己动手写了几个图表饼状图,柱形图,折线图等,重在思路. 那么如果你不想这么麻烦自己动手,有没有现成的图表库那? 当然有,虽然我也刚开始用没多久,不过还是对这么良心的项目充满了敬佩!! g ...
- C# Fakes
我们为了测试程序的运行逻辑,需要写单元测试来验证程序的逻辑.有的时候我们的逻辑需要依赖于外界的事物(需要一个文件,eg:数据库),我们不可能在运行单元测试的计算机都创建一个数据库,所以这个时候我们就需 ...
- 初识javaScript(慕课网学习笔记)
js输出 window.alert() 警告框 document.write() 写到HTML文档中 innerHTML 写到HTML元素 console.log() 写到浏览器的控制台 <!D ...