记录下HTTP中的一些琐碎

来源:互联网 发布:php object to string 编辑:程序博客网 时间:2024/04/27 09:21

最最最开始,http其实是对于tcp协议的一种应用。
http就是每次请求响应的时候都开一次tcp连接,传输完就关闭。所以说http是无状态的短连接(因为一次传输后立马关闭,所以不会有任何状态保存),而tcp是长连接(一般的C/S都是Socket一直保存在服务端的)。

HTTP请求(用户向服务器请求):
1. 方法-URI-协议/版本
2. 请求头
3. 请求主体

请求方法有七种,但是目前只用过post和get,简单说说自己对这两种请求的区别:    get:参数放在url后面,所有人可见,不安全。由于URL长度受限,所有get带参有限。虽然之前没有碰到过,但是get所有参数使用ASCII编码,而不是Unicode。    post:所有的参数放在请求主体中,所以稍微安全点。卧槽,才看到,post提交按返回或者刷新键,数据会被重新提交。    URI是资源相对于项目的相对路径(其实也是可以是绝对路径,就是javaweb里面获得uri是会获得相对路径),URL不仅仅是提供一个路径,还要提供对资源的内容描述。

HTTP响应(服务器对用户请求的响应):
1.协议-状态码-描述
2.响应头
3.响应正文

    响应的状态码,2开头是请求成功,3开头是重定向,4开头是客户端出现错误,5开头是服务端出现错误    说道这里又要说说重定向和转发的区别,其实之前的jsp学习里面有记录,这里再补充    重定向是客户端行为,相当于再访问另一个网页。response.SendRedirect(),URL地址也会相应改变。本质是客户端发送请求后,服务端再返回响应然客户端访问另外一个网页,注意使用重定向是会丢失本次Request参数的。    转发是服务器行为,相当于把另一个jsp文件内容移动到当前网页来,request.getResquestDispatcher().forward(req,res)。URL是不会改变的。
原创粉丝点击