http(下)

http的工作流程:

客户端---服务端通信过程

请求----响应的模型

建立连接:tcp/ip协议与服务器建立连接(三次握手),客户端向服务器的80端口发送连接请求

发送请求:一旦连接建立之后,客户端就像服务端发送http请求。http请求:由一个请求行和多个头部字段组成

请求方式:get post

服务端处理请求:根据请求的方式和内容进行处理。服务端会读取请求头的字段,解析参数,处理数据等等

服务端返回响应:形成一个http响应,响应由一个响应行,包含多个字段。响应内容包含重要的内容状态码,用于表示服务端对于请求的处理结果

面试题:

http的状态码

1xx:信息提示100-101 无实际作用

2xx:成功,表示请求处理结果成功 200

3xx:重定向,304表示请求的是缓存

4xx:客户端错误,403 404,请求的页面不存在或者没有权限访问

403:请求的页面禁止访问

404:服务器无法请求的页面

5xx:服务器错误

  1. 内部服务器错误

500:检查防火墙,检查进程也就是服务状态,检查端口,检查配置文件,端口号被占用

502:无效网关

503:请求的服务器不可用,可能下线了

504:网关请求超时

生产中常见的状态码:

200 ok:请求成功

301:永久重定向

302:临时重定向

304:访问的是本地缓存

403:Forbidden,禁止客户访问该页面

404:NOT FOUND,服务器无法找到被请求的页面

500:inetnal server error,内部服务器错误

502:BAD geteway,网关失效(服务端的网关失效)

503:server Unavailable,服务器不可用(网站维护)

504:GATEWAY timeout,网关请求超时(服务端处于维护或者路由器故障)

传输数据:一旦服务器生成了http响应,会通过之前建立的连接将响应返回给客户端

响应当中包含了请求的资源(网页内容)以及其他的需要传输的数据(一般是自定义)

关闭连接:响应发送完成,服务端就会进入连接关闭,http1.1 time_wait。双方还在建立连接,只是双方之间不在有数据传输。一旦有新的请求,连接可以继续使用。160秒 会话保持或者长连接

http1.1会一次性获取页面的全部资源,然后发起四次挥手。只是不再传输数据,连接并没有断开

客户端解析和现实响应:

客户端收到http响应之后,解析响应内容,包括页面解析,显示图片,播放视频

主要靠的是浏览器

客户端也可以继续发送请求,或者打开新的连接,请求其他资源

http的请求方式:

get的方式:

get向服务器放送请求的数据,依照http协议来进行get就是请求

请求行:

请求体:

Accept:客户端可以接受的数据类型

Accept-Encoding:客户端可以接受的编码格式,以及数据是否需要压缩

Accept-Language:客户端可以接受的语言类型

Cache-Control:数据再本地缓存的时间

Connection:连接的处理方式,一般都是会话保存

host:表示请求的ip和端口号,也可以理解为请求的主机名

User-Agent:客户端请求使用的浏览器信息

响应头:

响应体:

post:向服务端发送数据,按照http协议进行,服务器添加数据,post的请求方式会修改服务器上的数据

get和post的区别:

get的请求可以换粗

get的请求还可以保存在浏览器的cookie中

get的请求长度有限制

get就是获取数据

post的请求不能被缓存,也不会保存在浏览器的cookie中

post请求没有长度限制

请求的字符串不会显示,比较安全

小工具:

telnet:可以测试服务器的指定断开是否正常

yum -y install telnet

命令:telnet 192.168.233.20 80

nc:

命令:

test1:nc -l 8888

test2:nc 192.168.233.10 8888

相关推荐
阿斯顿法国红酒快18 分钟前
Windows系统安全加固
网络·windows·安全·网络安全·系统安全·ddos
sun0077001 小时前
windows 10 做服务器 其他电脑无法访问,怎么回事?
运维·服务器·网络
2401_896008192 小时前
TCP连接状态说明
运维·服务器·网络
利刃大大2 小时前
【网络编程】十、详解 UDP 协议
网络·网络协议·udp
LaoZhangGong1232 小时前
W5500使用ioLibrary库创建TCP客户端
网络·经验分享·stm32·网络协议·tcp/ip
北极象3 小时前
Go语言处理HTTP下载中EOFFailed
开发语言·http·golang
麟城Lincoln3 小时前
【Linux笔记】nfs网络文件系统与autofs(nfsdata、autofs、autofs.conf、auto.master)
linux·网络·笔记·nfs·autofs
Funny-Boy3 小时前
Reactor (epoll实现基础)
服务器·网络·c++
tmacfrank4 小时前
Java 原生网络编程(BIO | NIO | Reactor 模式)
java·开发语言·网络
天天爱吃肉82184 小时前
车载以太网驱动智能化:域控架构设计与开发实践
java·运维·网络协议·微服务