Http协议
Http请求的本质,就是创建两个socket对象,一个是客户端,一个是服务端,他们互相通过字符串的形式通信,而这些字符串遵循的就是http协议,而http协议规定了请求头和请求体是通过两个/r/n进行分隔,而请求头又是通过一个/r/n进行分隔,而响应头和响应体一样分隔,cookie是存放在请求头和响应头中进行传输的,而get请求是没有请求体的,但是他也必须以/r/n进行分割
特点
http协议,即超文本传输协议,这个协议详细规定了浏览器和万维网服务器之间的相互通信的规则
- 基于请求/响应式的,给一次请求,服务器给一次响应
- http是无状态协议:一旦断开,下一次存储任何信息,
- 协议双方:浏览器和服务器
- 请求协议:通信规则规定了客户端发送给服务端的内容格式
- 响应协议:通信规则规定了服务器发送给客户端的内容格式
- URL:统一资源定位符,就是一个网址:协议名://域名:端口/路径
请求协议
客户端打包数据发送给服务端,必须要按照服务端的格式来写,请求方式有两种,get方式和post方式
区别
- get方式:直接写在地址栏 ?username=egon&pwd=123以这种方式发送
应用场景 地址栏访问,a标签,form表单 - post方式:把数据放在请求体里面发送
格式(get)
- requestHeaders(请求头)
- POST http1.1
- key:value
- ...
格式(post)
- RequestHeaders(请求头)
- POST http1.1
- key:value
- …(向服务器做一些声明,告诉服务器自己能识别的文本格式、语言、压缩格式、来源等等)
- \r\n(空行)
- 请求体(放数据的地方)
区别
- post请求相对安全一点,最起码不会暴露在地址栏
- 地址栏容量有限,如果内容太大,get请求装不下
响应协议
- 相应首行: http 200ok 状态码,等状态信息
- 相应头信息:responseHeaders
- key:value
- …(服务器向浏览器发送一些声明,自己数据的格式,编码,大小等等)
- 空行:\r\n
- 相应体:渲染到页面的HTML
状态码
- 200:请求成功,服务器会把响应体内容显示在浏览器中。
- 404:请求的资源没有找到
- 304:浏览器第一次请求之后会缓存下服务器相应的响应以及最后修改时间,等浏览器第二次请求发送后,如果服务端数据没有改动,也就是最后修改事件没有变化的话,服务器会给浏览器发送304状态吗,告诉浏览器不用从服务器去拿,自己的缓存就可以
网友评论